On Sunday 08 April 2007 18:07, Steve Peters via RT wrote: > On Sun Apr 08 16:08:05 2007, stmpeters wrote: > > The attached patch includes several cleanups needed to silence > > warnings > > when compiling Parrot with Intel C++. > > It helps to attach the right patch....
I get several warnings. I've cleaned up this batch: src/pmc/eval.pmc: In function ‘Parrot_Eval_get_string’: src/pmc/eval.pmc:255: warning: passing argument 3 of ‘PackFile_pack’ from incompatible pointer type src/pmc/eval.pmc: In function ‘Parrot_Eval_thaw’: src/pmc/eval.pmc:312: warning: passing argument 3 of ‘PackFile_unpack’ from incompatible pointer type src/pmc_freeze.c: In function ‘run_thaw’: src/pmc_freeze.c:1435: warning: comparison of distinct pointer types lacks a cast src/pmc/string.pmc: In function ‘Parrot_String_nci_trans’: src/pmc/string.pmc:853: warning: array subscript has type ‘char’ ... but my attempt to fix these causes more test failures in t/op/string_cs.t: src/encodings/fixed_8.c src/encodings/fixed_8.c: In function ‘get_byte’: src/encodings/fixed_8.c:49: warning: pointer targets in initialization differ in signedness src/encodings/fixed_8.c: In function ‘set_byte’: src/encodings/fixed_8.c:67: warning: pointer targets in assignment differ in sig nedness src/encodings/ucs2.c src/encodings/utf16.c src/encodings/utf16.c: In function ‘get_byte’: src/encodings/utf16.c:170: warning: pointer targets in initialization differ in signedness src/encodings/utf16.c: In function ‘set_byte’: src/encodings/utf16.c:188: warning: pointer targets in assignment differ in sign edness src/encodings/utf8.c src/encodings/utf8.c: In function ‘to_encoding’: src/encodings/utf8.c:334: warning: pointer targets in assignment differ in signe dness src/encodings/utf8.c:357: warning: pointer targets in assignment differ in signe dness src/encodings/utf8.c: In function ‘get_byte’: src/encodings/utf8.c:400: warning: pointer targets in initialization differ in s ignedness src/encodings/utf8.c: In function ‘set_byte’: src/encodings/utf8.c:418: warning: pointer targets in assignment differ in signe dness The test results are: not ok 5 - downcase # Failed test (t/op/string_cs.t at line 72) # got: 'aeiou_�� # ' # expected: 'aeiou_�� # ' ok 6 - upcase not ok 7 - titlecase # Failed test (t/op/string_cs.t at line 90) # got: 'Zaeiou_�� # ' # expected: 'Zaeiou_�� # ' As seen through less, they are: # Failed test (t/op/string_cs.t at line 72) # got: 'aeiou_<C4><D6><DC> # ' # expected: 'aeiou_<E4><F6><FC> # ' # Failed test (t/op/string_cs.t at line 90) # got: 'Zaeiou_<C4><D6><DC> # ' # expected: 'Zaeiou_<E4><F6><FC> ... so the encoded characters get 32 added to them somehow, somewhere. I've attached your patch with a few changes on my end. -- c
=== include/parrot/charset.h ================================================================== --- include/parrot/charset.h (revision 3072) +++ include/parrot/charset.h (local) @@ -53,9 +53,9 @@ typedef INTVAL (*charset_index_t)(Interp *, STRING *source_string, STRING *search_string, UINTVAL offset); typedef INTVAL (*charset_rindex_t)(Interp *, STRING *source_string, STRING *search_string, UINTVAL offset); typedef UINTVAL (*charset_validate_t)(Interp *, STRING *source_string); -typedef INTVAL (*charset_is_cclass_t)(Interp *, PARROT_CCLASS_FLAGS, STRING *source_string, UINTVAL offset); -typedef INTVAL (*charset_find_cclass_t)(Interp *, PARROT_CCLASS_FLAGS, STRING *source_string, UINTVAL offset, UINTVAL count); -typedef INTVAL (*charset_find_not_cclass_t)(Interp *, PARROT_CCLASS_FLAGS, STRING *source_string, UINTVAL offset, UINTVAL count); +typedef INTVAL (*charset_is_cclass_t)(Interp *, int, STRING *source_string, UINTVAL offset); +typedef INTVAL (*charset_find_cclass_t)(Interp *, int, STRING *source_string, UINTVAL offset, UINTVAL count); +typedef INTVAL (*charset_find_not_cclass_t)(Interp *, int, STRING *source_string, UINTVAL offset, UINTVAL count); typedef INTVAL (*charset_is_wordchar_t)(Interp *, STRING *source_string, UINTVAL offset); typedef INTVAL (*charset_find_wordchar_t)(Interp *, STRING *source_string, UINTVAL offset); typedef INTVAL (*charset_find_not_wordchar_t)(Interp *, STRING *source_string, UINTVAL offset); === include/parrot/embed.h ================================================================== --- include/parrot/embed.h (revision 3072) +++ include/parrot/embed.h (local) @@ -28,9 +28,9 @@ PARROT_API void Parrot_init(Parrot_Interp); PARROT_API void Parrot_init_stacktop(Parrot_Interp, void *); -PARROT_API void Parrot_set_flag(Parrot_Interp, Parrot_Interp_flag); -PARROT_API void Parrot_clear_flag(Parrot_Interp, Parrot_Interp_flag); -PARROT_API Parrot_Int Parrot_test_flag(Parrot_Interp, Parrot_Interp_flag); +PARROT_API void Parrot_set_flag(Parrot_Interp, int); +PARROT_API void Parrot_clear_flag(Parrot_Interp, int); +PARROT_API Parrot_Int Parrot_test_flag(Parrot_Interp, int); PARROT_API void Parrot_set_trace(Parrot_Interp, Parrot_UInt); PARROT_API void Parrot_clear_trace(Parrot_Interp, Parrot_UInt); === include/parrot/exceptions.h ================================================================== --- include/parrot/exceptions.h (revision 3072) +++ include/parrot/exceptions.h (local) @@ -153,14 +153,14 @@ /* Right now there's nothing special for the jump buffer, but there might be one later, so we wrap it in a struct so that we can expand it later */ struct parrot_exception_t { - Parrot_jump_buff destination; /* jmp_buf */ - exception_severity severity; /* s. above */ - long error; /* exception_type_enum */ - STRING *msg; /* may be NULL */ - void *resume; /* opcode_t* for resume or NULL */ - struct parrot_exception_t *prev; /* interpreters handler stack */ - long language; /* what is this? */ - long system; /* what is this? */ + Parrot_jump_buff destination; /* jmp_buf */ + int severity; /* s. above */ + long error; /* exception_type_enum */ + STRING *msg; /* may be NULL */ + void *resume; /* opcode_t* for resume or NULL */ + struct parrot_exception_t *prev; /* interpreter's handler stack */ + long language; /* what is this? */ + long system; /* what is this? */ }; typedef struct parrot_exception_t Parrot_exception; @@ -181,7 +181,7 @@ /* * internal exception handling */ -PARROT_API void do_exception(Parrot_Interp, exception_severity severity, long error); +PARROT_API void do_exception(Parrot_Interp, int severity, long error); PARROT_API void new_internal_exception(Parrot_Interp); PARROT_API void free_internal_exception(Parrot_Interp); === include/parrot/interpreter.h ================================================================== --- include/parrot/interpreter.h (revision 3072) +++ include/parrot/interpreter.h (local) @@ -303,18 +303,24 @@ op_lib_t *op_lib; /* Opcode library */ size_t op_count; /* The number of ops */ - op_info_t *op_info_table; /* Opcode info table (name, nargs, arg types) */ + op_info_t *op_info_table; /* Opcode info table + * (name, nargs, arg types) */ - op_func_t *op_func_table; /* opcode dispatch table (functios, labels, - * or nothing (e.g. switched core), which - * the interpreter is currently running */ - op_func_t *evc_func_table; /* opcode dispatch for event checking */ + op_func_t *op_func_table; /* opcode dispatch table + * (functions, labels, or nothing + * e.g., switched core), which + * the interpreter is currently + * running */ + + op_func_t *evc_func_table; /* opcode dispatch for event + * checking */ + op_func_t *save_func_table; /* for restoring op_func_table */ int n_libs; /* count of libs below */ op_lib_t **all_op_libs; /* all loaded opcode libraries */ - Interp_flags flags; /* Various interpreter flags that + int flags; /* Various interpreter flags that * signal that runops should do * something */ @@ -323,8 +329,8 @@ Run_Cores run_core; /* type of core to run the ops */ /* TODO profile per code segment or global */ - RunProfile *profile; /* The structure and array where we keep the - * profile counters */ + RunProfile *profile; /* The structure and array where + * we keep the profile counters */ INTVAL resume_flag; size_t resume_offset; @@ -334,14 +340,16 @@ struct _imc_info_t *imc_info; /* imcc data */ - const char* output_file; /* The file into which output is written */ + const char* output_file; /* The file into which output is + * written */ PDB_t *pdb; /* Debug system */ Interp * debugger; /* trace / debug interpreter */ struct Stack_Chunk *dynamic_env; /* current dynamic environment */ - void *lo_var_ptr; /* Pointer to memory on runops system stack */ + void *lo_var_ptr; /* Pointer to memory on runops + * system stack */ Interp * parent_interpreter; @@ -360,9 +368,12 @@ /* 8: PMC *PBC_Libs Hash of load_bytecode cde */ /* 9: PMC *Executable String PMC with name from argv[0]. */ - PMC* DOD_registry; /* registered PMCs added to the root set */ + PMC* DOD_registry; /* registered PMCs added to the + * root set */ - PMC* HLL_info; /* storage for HLL names and types */ + PMC* HLL_info; /* storage for HLL names and + * types */ + PMC* HLL_namespace; /* cache of HLL toplevel ns */ PMC *root_namespace; /* namespace hash */ @@ -375,7 +386,7 @@ STRING **const_cstring_table; /* CONST_STRING(x) items */ struct QUEUE* task_queue; /* per interpreter queue */ - struct _handler_node_t *exit_handler_list; /* exit.c */ + struct _handler_node_t *exit_handler_list; /* exit.c */ int sleeping; /* used during sleep in events */ struct parrot_exception_t *exceptions; /* internal exception stack */ @@ -391,17 +402,30 @@ UINTVAL gc_generation; /* GC generation number */ - opcode_t *current_args; /* ptr into code with set_args opcode */ - opcode_t *current_params; /* ptr into code with get_params opcode */ - opcode_t *current_returns; /* ptr into code with get_returns opcode */ - PMC *args_signature; /* args signature pmc if it is non-const */ - PMC *params_signature; /* params signature pmc if it is non-const */ - PMC *returns_signature; /* returns signature pmc if it is non-const */ - /* during a call sequencer the caller fills these objects + opcode_t *current_args; /* ptr into code with set_args + * opcode */ + + opcode_t *current_params; /* ptr into code with get_params + * opcode */ + + opcode_t *current_returns; /* ptr into code with get_returns + * opcode */ + + PMC *args_signature; /* args signature pmc if it is + * non-const */ + + PMC *params_signature; /* params signature pmc if it is + * non-const */ + + PMC *returns_signature; /* returns signature pmc if it is + * non-const */ + + /* during a call sequence the caller fills these objects * inside the invoke these get moved to the context structure */ PMC *current_cont; /* the return continuation PMC */ - PMC *current_object; /* current object if a method call */ + PMC *current_object; /* current object if a method + * call */ }; /* typedef struct parrot_interp_t Interp; done in parrot.h so that @@ -459,7 +483,7 @@ /* &end_gen */ -PARROT_API Interp *make_interpreter(Interp * parent, Interp_flags); +PARROT_API Interp *make_interpreter(Interp * parent, int); PARROT_API void Parrot_init(Interp *); PARROT_API void Parrot_destroy(Interp *); @@ -528,7 +552,7 @@ PARROT_API void dynop_register(Interp *interp, PMC* op_lib); void do_prederef(void **pc_prederef, Interp *interp, int type); -void clone_interpreter(Parrot_Interp dest, Parrot_Interp self, Parrot_clone_flags flags); +void clone_interpreter(Parrot_Interp dest, Parrot_Interp self, int flags); PARROT_API void enter_nci_method(Interp *, const int type, void *func, const char *name, const char *proto); === include/parrot/misc.h ================================================================== --- include/parrot/misc.h (revision 3072) +++ include/parrot/misc.h (local) @@ -141,9 +141,9 @@ typedef struct spfinfo_t { UINTVAL width; UINTVAL prec; - FLAG flags; - TYPE type; - PHASE phase; + int flags; + int type; + int phase; } *SpfInfo; /* SPRINTF ARGUMENT OBJECT */ === include/parrot/packfile.h ================================================================== --- include/parrot/packfile.h (revision 3072) +++ include/parrot/packfile.h (local) @@ -76,8 +76,8 @@ PackFile_Segment_dump_func_t dump; }; -PARROT_API INTVAL PackFile_funcs_register(Interp*, struct PackFile *, UINTVAL type, - struct PackFile_funcs); +PARROT_API INTVAL PackFile_funcs_register(Interp*, struct PackFile *, + UINTVAL type, struct PackFile_funcs); typedef enum { PF_DIR_SEG, @@ -322,10 +322,10 @@ /* create new fixup entry */ PARROT_API void PackFile_FixupTable_new_entry(Interp *, char *label, - enum_fixup_t, opcode_t offs); + int, opcode_t offs); /* find entry */ PARROT_API struct PackFile_FixupEntry * PackFile_find_fixup_entry(Interp *, - enum_fixup_t type, char *); + int type, char *); /* ** PackFile_ByteCode Functions: === include/parrot/pmc_freeze.h ================================================================== --- include/parrot/pmc_freeze.h (revision 3072) +++ include/parrot/pmc_freeze.h (local) @@ -76,7 +76,7 @@ PMC* id_list; /* seen list used by thaw */ UINTVAL id; /* freze ID of PMC */ void* extra; /* PMC specific */ - extra_flags_enum extra_flags; /* concerning to extra */ + int extra_flags; /* concerning to extra */ PMC* thaw_result; /* 1st thawed */ IMAGE_IO *image_io; } visit_info; === include/parrot/pobj.h ================================================================== --- include/parrot/pobj.h (revision 3072) +++ include/parrot/pobj.h (local) @@ -78,7 +78,7 @@ struct parrot_string_t { pobj_t obj; UINTVAL bufused; - void *strstart; + char *strstart; UINTVAL strlen; /* parrot_string_representation_t representation;*/ void *encoding; /* These should be of type ENCODING * and CHARSET * === include/parrot/string_funcs.h ================================================================== --- include/parrot/string_funcs.h (revision 3072) +++ include/parrot/string_funcs.h (local) @@ -112,11 +112,11 @@ PARROT_API void string_downcase_inplace(Interp *, STRING *); PARROT_API void string_titlecase_inplace(Interp *, STRING *); -PARROT_API INTVAL Parrot_string_is_cclass(Interp *, PARROT_CCLASS_FLAGS, +PARROT_API INTVAL Parrot_string_is_cclass(Interp *, int, STRING *, UINTVAL offset); -PARROT_API INTVAL Parrot_string_find_cclass(Interp *, PARROT_CCLASS_FLAGS, +PARROT_API INTVAL Parrot_string_find_cclass(Interp *, int, STRING *, UINTVAL offset, UINTVAL count); -PARROT_API INTVAL Parrot_string_find_not_cclass(Interp *, PARROT_CCLASS_FLAGS, +PARROT_API INTVAL Parrot_string_find_not_cclass(Interp *, int, STRING *, UINTVAL offset, UINTVAL count); PARROT_API INTVAL Parrot_string_is_whitespace(Interp *, STRING *, INTVAL offset); PARROT_API INTVAL Parrot_string_is_digit(Interp *, STRING *, INTVAL offset); === include/parrot/thread.h ================================================================== --- include/parrot/thread.h (revision 3072) +++ include/parrot/thread.h (local) @@ -84,31 +84,31 @@ * per interpreter thread data structure */ typedef struct _Thread_data { - Parrot_thread thread; /* pthread_t or such */ - thread_state_enum state; - int wants_shared_gc; /* therad is trying to + Parrot_thread thread; /* pthread_t or such */ + int state; + int wants_shared_gc; /* thread is trying to do a shared GC run */ - UINTVAL tid; /* 0.. n-1 idx in interp array */ + UINTVAL tid; /* 0.. n-1 idx in interp array */ - Parrot_Interp joiner; /* thread that is trying to join this */ + Parrot_Interp joiner; /* thread that is trying to join this */ - /* for wr access to interpreter e.g. for DOD/GC + /* for write access to interpreter e.g. for DOD/GC * if only used for DOD/GC the lock could be in the arena * instead here, or in the interpreter, with negative size impact * for the non-threaded case */ - Parrot_mutex interp_lock; + Parrot_mutex interp_lock; /* for waking up the interpreter from various sorts * of sleeping */ - Parrot_cond interp_cond; + Parrot_cond interp_cond; /* STM transaction log */ - void *stm_log; + void *stm_log; /* COW'd constant tables */ - Hash *const_tables; + Hash *const_tables; } Thread_data; # define LOCK_INTERPRETER(interp) \ === src/charset/ascii.c ================================================================== --- src/charset/ascii.c (revision 3072) +++ src/charset/ascii.c (local) @@ -85,7 +85,7 @@ { String_iter iter; UINTVAL c, len, offs; - unsigned char *p; + char *p; len = src->strlen; if (dest) { @@ -355,8 +355,7 @@ } static INTVAL -is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, - STRING *source_string, UINTVAL offset) +is_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset) { UINTVAL codepoint; @@ -372,7 +371,7 @@ } static INTVAL -find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { UINTVAL pos = offset; @@ -391,7 +390,7 @@ } static INTVAL -find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_not_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { UINTVAL pos = offset; === src/charset/binary.c ================================================================== --- src/charset/binary.c (revision 3072) +++ src/charset/binary.c (local) @@ -125,21 +125,20 @@ } static INTVAL -is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, - STRING *source_string, UINTVAL offset) +is_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset) { return 0; } static INTVAL -find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { return offset + count; } static INTVAL -find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_not_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { return offset + count; === src/charset/iso-8859-1.c ================================================================== --- src/charset/iso-8859-1.c (revision 3072) +++ src/charset/iso-8859-1.c (local) @@ -134,7 +134,7 @@ static void upcase(Interp *interp, STRING *source_string) { - unsigned char *buffer; + char *buffer; UINTVAL offset = 0; if (!source_string->strlen) { @@ -157,7 +157,7 @@ downcase(Interp *interp, STRING *source_string) { UINTVAL offset = 0; - unsigned char *buffer; + char *buffer; if (!source_string->strlen) { return; } @@ -176,7 +176,7 @@ static void titlecase(Interp *interp, STRING *source_string) { - unsigned char *buffer; + char *buffer; unsigned int c; UINTVAL offset; @@ -205,7 +205,7 @@ static void upcase_first(Interp *interp, STRING *source_string) { - unsigned char *buffer; + char *buffer; unsigned int c; if (!source_string->strlen) { @@ -224,7 +224,7 @@ static void downcase_first(Interp *interp, STRING *source_string) { - unsigned char *buffer; + char *buffer; unsigned int c; if (!source_string->strlen) { @@ -262,8 +262,7 @@ } static INTVAL -is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, - STRING *source_string, UINTVAL offset) +is_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset) { UINTVAL codepoint; @@ -278,7 +277,7 @@ } static INTVAL -find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { UINTVAL pos = offset; @@ -297,7 +296,7 @@ } static INTVAL -find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_not_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { UINTVAL pos = offset; === src/charset/tables.c ================================================================== --- src/charset/tables.c (revision 3072) +++ src/charset/tables.c (local) @@ -14,7 +14,7 @@ */ #include "tables.h" -const PARROT_CCLASS_FLAGS Parrot_ascii_typetable[256] = { +const int Parrot_ascii_typetable[256] = { 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 0-7 */ 0x0200, 0x0320, 0x1220, 0x0220, 0x1220, 0x1220, 0x0200, 0x0200, /* 8-15 */ 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 16-23 */ @@ -48,7 +48,7 @@ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 240-247 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 248-255 */ }; -const PARROT_CCLASS_FLAGS Parrot_iso_8859_1_typetable[256] = { +const int Parrot_iso_8859_1_typetable[256] = { 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 0-7 */ 0x0200, 0x0320, 0x1220, 0x0220, 0x1220, 0x1220, 0x0200, 0x0200, /* 8-15 */ 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, /* 16-23 */ === src/charset/tables.h ================================================================== --- src/charset/tables.h (revision 3072) +++ src/charset/tables.h (local) @@ -20,8 +20,8 @@ #define WORDCHAR enum_cclass_word #define PUNCTUATION enum_cclass_punctuation #define DIGIT enum_cclass_numeric -extern const PARROT_CCLASS_FLAGS Parrot_ascii_typetable[256]; -extern const PARROT_CCLASS_FLAGS Parrot_iso_8859_1_typetable[256]; +extern const int Parrot_ascii_typetable[256]; +extern const int Parrot_iso_8859_1_typetable[256]; #endif /* PARROT_CHARSET_TABLES_H_GUARD */ /* === src/charset/unicode.c ================================================================== --- src/charset/unicode.c (revision 3072) +++ src/charset/unicode.c (local) @@ -362,7 +362,7 @@ } static int -u_iscclass(Interp *interp, UINTVAL codepoint, PARROT_CCLASS_FLAGS flags) +u_iscclass(Interp *interp, UINTVAL codepoint, int flags) { #if PARROT_HAS_ICU /* XXX which one @@ -429,8 +429,7 @@ } static INTVAL -is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, - STRING *source_string, UINTVAL offset) +is_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset) { UINTVAL codepoint; @@ -444,7 +443,7 @@ } static INTVAL -find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { UINTVAL pos = offset; @@ -469,7 +468,7 @@ } static INTVAL -find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +find_not_cclass(Interp *interp, int flags, STRING *source_string, UINTVAL offset, UINTVAL count) { UINTVAL pos = offset; === src/embed.c ================================================================== --- src/embed.c (revision 3072) +++ src/embed.c (local) @@ -97,7 +97,7 @@ /* -=item C<void Parrot_set_flag(Interp *interp, Parrot_Interp_flag flag)> +=item C<void Parrot_set_flag(Interp *interp, int flag)> Sets a flag in the interpreter specified by C<flag>, any of C<PARROT_BOUNDS_FLAG>, or C<PARROT_PROFILE_FLAG> to enable profiling, and @@ -119,7 +119,7 @@ */ void -Parrot_set_flag(Interp *interp, Parrot_Interp_flag flag) +Parrot_set_flag(Interp *interp, int flag) { /* These two macros (from interpreter.h) do exactly what they look like. */ @@ -150,7 +150,7 @@ /* -=item C<void Parrot_clear_flag(Interp *, Parrot_Interp_flag flag)> +=item C<void Parrot_clear_flag(Interp *, int flag)> =item C<void Parrot_clear_debug(Interp *, UINTVAL flag)> @@ -163,7 +163,7 @@ */ void -Parrot_clear_flag(Parrot_Interp interp, Parrot_Interp_flag flag) +Parrot_clear_flag(Parrot_Interp interp, int flag) { Interp_flags_CLEAR(interp, flag); } @@ -183,7 +183,7 @@ /* =item C<Parrot_Int -Parrot_test_flag(Interp*, Parrot_Interp_flag flag)> +Parrot_test_flag(Interp*, int flag)> =item C<UINTVAL Parrot_test_debug(Interp*, UINTVAL flag)> @@ -198,7 +198,7 @@ */ Parrot_Int -Parrot_test_flag(Interp* interp, Parrot_Interp_flag flag) +Parrot_test_flag(Interp* interp, int flag) { return Interp_flags_TEST(interp, flag); } === src/events.c ================================================================== --- src/events.c (revision 3072) +++ src/events.c (local) @@ -107,7 +107,7 @@ * a structure to communicate with the io_thread */ typedef struct { - io_thread_msg_type command; + int command; parrot_event *ev; } io_thread_msg; === src/exceptions.c ================================================================== --- src/exceptions.c (revision 3072) +++ src/exceptions.c (local) @@ -646,8 +646,7 @@ */ void -do_exception(Interp *interp, - exception_severity severity, long error) +do_exception(Interp *interp, int severity, long error) { Parrot_exception * const the_exception = interp->exceptions; === src/inter_create.c ================================================================== --- src/inter_create.c (revision 3072) +++ src/inter_create.c (local) @@ -89,7 +89,7 @@ void Parrot_really_destroy(Interp *, int exit_code, void *); Parrot_Interp -make_interpreter(Parrot_Interp parent, Interp_flags flags) +make_interpreter(Parrot_Interp parent, int flags) { Interp *interp; #if EXEC_CAPABLE @@ -102,7 +102,7 @@ interp = &interpre; else #endif - interp = mem_sys_allocate_zeroed(sizeof (Interp)); + interp = mem_allocate_zeroed_typed(Interp); /* * the last interpreter (w/o) parent has to cleanup globals === src/io/io.c ================================================================== --- src/io/io.c (revision 3072) +++ src/io/io.c (local) @@ -1283,7 +1283,7 @@ PIOOFF_T PIO_make_offset32(INTVAL hi, INTVAL lo) { - return ((PIOOFF_T)hi << 32) | lo; + return ((PIOOFF_T)hi << 31) | lo; } /* === src/io/io_buf.c ================================================================== --- src/io/io_buf.c (revision 3072) +++ src/io/io_buf.c (local) @@ -384,7 +384,7 @@ { ParrotIOLayer *l = layer; ParrotIOBuf *b; - unsigned char *out_buf; + char *out_buf; STRING *s; size_t len; size_t current = 0; @@ -538,8 +538,8 @@ STRING **buf) { size_t l; - unsigned char *out_buf; - unsigned char *buf_start; + char *out_buf; + char *buf_start; ParrotIOBuf * const b = &io->b; size_t len; STRING *s; @@ -578,7 +578,7 @@ Parrot_allocate_string(interp, s, l); } } - out_buf = (unsigned char*)s->strstart + s->strlen; + out_buf = s->strstart + s->strlen; memcpy(out_buf, buf_start, len); s->strlen = s->bufused = l; if (PIO_buf_fill_readbuf(interp, layer, io, b) == 0) @@ -594,7 +594,7 @@ Parrot_allocate_string(interp, s, l); } } - out_buf = (unsigned char*)s->strstart + s->strlen; + out_buf = s->strstart + s->strlen; len = b->next - buf_start; memcpy(out_buf, buf_start, len); s->strlen = s->bufused = l; === src/io/io_private.h ================================================================== --- src/io/io_private.h (revision 3072) +++ src/io/io_private.h (local) @@ -97,9 +97,9 @@ struct _ParrotIOBuf { INTVAL flags; /* Buffer specific flags */ size_t size; - unsigned char *startb; /* Start of buffer */ - unsigned char *endb; /* End of buffer */ - unsigned char *next; /* Current read/write pointer */ + char *startb; /* Start of buffer */ + char *endb; /* End of buffer */ + char *next; /* Current read/write pointer */ }; struct _ParrotIO { === src/jit.c ================================================================== --- src/jit.c (revision 3072) +++ src/jit.c (local) @@ -1349,9 +1349,8 @@ */ Parrot_jit_info_t * -parrot_build_asm(Interp *interp, - opcode_t *code_start, opcode_t *code_end, - void *objfile, enum_jit_code_type jit_type) +parrot_build_asm(Interp *interp, opcode_t *code_start, opcode_t *code_end, + void *objfile, int jit_type) { UINTVAL i; char *new_arena; === src/jit.h ================================================================== --- src/jit.h (revision 3072) +++ src/jit.h (local) @@ -195,7 +195,7 @@ Parrot_jit_arena_t arena; Parrot_jit_optimizer_t *optimizer; Parrot_jit_constant_pool_t *constant_pool; - enum_jit_code_type code_type; + int code_type; int flags; const struct jit_arch_info_t *arch_info; int n_args; @@ -312,9 +312,8 @@ * interface to create JIT code */ Parrot_jit_info_t * -parrot_build_asm(Interp *interp, - opcode_t *code_start, opcode_t *code_end, - void *objfile, enum_jit_code_type); +parrot_build_asm(Interp *interp, opcode_t *code_start, opcode_t *code_end, + void *objfile, int); /* * NCI interface */ === src/ops/io.ops ================================================================== --- src/ops/io.ops (revision 3072) +++ src/ops/io.ops (local) @@ -509,7 +509,7 @@ if ($3) { PIOOFF_T pos; pos = PIO_tell(interp, $3); - $1 = (INTVAL)(pos >> 32); + $1 = (INTVAL)(pos >> 31); $2 = (INTVAL)(pos & 0xffffffff); } goto NEXT(); === src/packfile.c ================================================================== --- src/packfile.c (revision 3072) +++ src/packfile.c (local) @@ -2839,7 +2839,7 @@ void PackFile_FixupTable_new_entry(Interp *interp, - char *label, enum_fixup_t type, opcode_t offs) + char *label, int type, opcode_t offs) { struct PackFile_FixupTable *self = interp->code->fixups; opcode_t i; @@ -2943,8 +2943,7 @@ */ struct PackFile_FixupEntry * -PackFile_find_fixup_entry(Interp *interp, enum_fixup_t type, - char * name) +PackFile_find_fixup_entry(Interp *interp, int type, char *name) { /* TODO make a hash of all fixups */ struct PackFile_Directory *dir = interp->code->base.dir; === src/pmc/default.pmc ================================================================== --- src/pmc/default.pmc (revision 3072) +++ src/pmc/default.pmc (local) @@ -952,7 +952,7 @@ b = parrot_hash_get_bucket(INTERP, (Hash*) PMC_metadata(SELF), name); if (b) - p = b->value; + p = (PMC *)b->value; } if (PMC_IS_NULL(p)) { /* may be NCI? */ === src/pmc/eval.pmc ================================================================== --- src/pmc/eval.pmc (revision 3072) +++ src/pmc/eval.pmc (local) @@ -252,7 +252,7 @@ See RT #40410 for example of the problem (note on line that segfaults, it is *cursor that is pointing to dealloced memory). */ Parrot_block_DOD(INTERP); - PackFile_pack(INTERP, pf, res->strstart); + PackFile_pack(INTERP, pf, (opcode_t *)res->strstart); Parrot_unblock_DOD(INTERP); /* now remove all segments from directory again and destroy * the packfile @@ -309,7 +309,8 @@ SUPER(info); sub = PMC_sub(SELF); pf = PackFile_new(INTERP, 0); - if (!PackFile_unpack(INTERP, pf, packed->strstart, packed->strlen)) + if (!PackFile_unpack(INTERP, pf, (opcode_t *)packed->strstart, + packed->strlen)) real_exception(INTERP, NULL, E_IOError, "couldn't unpack packfile"); do_sub_pragmas(INTERP, pf->cur_cs, PBC_PBC, SELF); === src/pmc/key.pmc ================================================================== --- src/pmc/key.pmc (revision 3072) +++ src/pmc/key.pmc (local) @@ -435,7 +435,7 @@ void thawfinish(visit_info *info) { PMC *key = SELF, *next; while (1) { - next = PMC_data(key); + next = (PMC *)PMC_data(key); if (PMC_IS_NULL(next)) { PMC_data(key) = NULL; break; === src/pmc/parrotinterpreter.pmc ================================================================== --- src/pmc/parrotinterpreter.pmc (revision 3072) +++ src/pmc/parrotinterpreter.pmc (local) @@ -43,7 +43,7 @@ */ void -clone_interpreter(Parrot_Interp d, Parrot_Interp s, Parrot_clone_flags flags) +clone_interpreter(Parrot_Interp d, Parrot_Interp s, int flags) { /* we block DOD runs while cloning since C<d> is not yet running */ Parrot_block_DOD(d); @@ -138,7 +138,7 @@ static void create_interp(PMC *self, Parrot_Interp parent) { - Interp_flags flag = 0; + int flag = 0; Parrot_Interp new_interp; if (self->vtable->base_type == enum_class_ParrotThread) === src/pmc/string.pmc ================================================================== --- src/pmc/string.pmc (revision 3072) +++ src/pmc/string.pmc (local) @@ -836,7 +836,7 @@ METHOD void trans(STRING* src, PMC* table) { INTVAL i, len; - unsigned char *p, ch; + char *p, ch; INTVAL *tr_data; len = string_length(interp, src); @@ -868,7 +868,7 @@ METHOD void reverse(STRING* src) { INTVAL i, len; - unsigned char *p, ch; + char *p, ch; len = string_length(interp, src); if (!len) @@ -898,7 +898,7 @@ METHOD INTVAL is_integer(STRING* src) { INTVAL i, len; - unsigned char *p; + char *p; len = string_length(interp, src); if (!len) === src/pmc_freeze.c ================================================================== --- src/pmc_freeze.c (revision 3072) +++ src/pmc_freeze.c (local) @@ -1432,7 +1432,7 @@ */ LVALUE_CAST(char *, image->strstart) -= bufused; image->bufused = bufused; - assert(image->strstart >= PObj_bufstart(image)); + assert(image->strstart >= (char *)PObj_bufstart(image)); if (dod_block) { Parrot_unblock_DOD(interp); === src/string.c ================================================================== --- src/string.c (revision 3072) +++ src/string.c (local) @@ -971,14 +971,15 @@ if (replace_dest && *d) { assert(src->encoding == Parrot_fixed_8_encoding_ptr); dest = *d; + dest->encoding = src->encoding; - dest->charset = src->charset; + dest->charset = src->charset; - dest->strstart = (char *)src->strstart + true_offset ; - dest->bufused = true_length; + dest->strstart = src->strstart + true_offset; + dest->bufused = true_length; - dest->strlen = true_length; - dest->hashval = 0; + dest->strlen = true_length; + dest->hashval = 0; } else dest = CHARSET_GET_CODEPOINTS(interp, src, true_offset, @@ -2005,13 +2006,12 @@ */ STRING * -string_escape_string_delimited(Interp *interp, - STRING *src, UINTVAL limit) +string_escape_string_delimited(Interp *interp, STRING *src, UINTVAL limit) { STRING *result, *hex; UINTVAL i, len, charlen; String_iter iter; - unsigned char *dp; + char *dp; if (!src) return NULL; @@ -2359,8 +2359,7 @@ */ INTVAL -Parrot_string_is_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, - STRING *s, UINTVAL offset) +Parrot_string_is_cclass(Interp *interp, int flags, STRING *s, UINTVAL offset) { if (!string_length(interp, s)) return 0; @@ -2368,7 +2367,7 @@ } INTVAL -Parrot_string_find_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +Parrot_string_find_cclass(Interp *interp, int flags, STRING *s, UINTVAL offset, UINTVAL count) { if (!s) @@ -2377,7 +2376,7 @@ } INTVAL -Parrot_string_find_not_cclass(Interp *interp, PARROT_CCLASS_FLAGS flags, +Parrot_string_find_not_cclass(Interp *interp, int flags, STRING *s, UINTVAL offset, UINTVAL count) { if (!s)