I'm no sure if i've submitted some of these before, but here goes.
Diffs against current cvs: Index: Configure.pl =================================================================== RCS file: /home/perlcvs/parrot/Configure.pl,v retrieving revision 1.39 diff -u -r1.39 Configure.pl --- Configure.pl 15 Dec 2001 01:39:40 -0000 1.39 +++ Configure.pl 20 Dec 2001 01:40:30 -0000 @@ -9,7 +9,7 @@ use ExtUtils::Manifest qw(manicheck); use File::Copy; -my($opt_debugging, $opt_defaults, $opt_version, $opt_help) = (0, 0, 0, 0); +my($opt_debugging, $opt_defaults, $opt_version, $opt_help, $opt_pedantic) = (0, 0, 0, +0, 0); my(%opt_defines); my $result = GetOptions( 'debugging!' => \$opt_debugging, @@ -17,6 +17,7 @@ 'version' => \$opt_version, 'help' => \$opt_help, 'define=s' => \%opt_defines, + 'pedantic!' => \$opt_pedantic, ); if($opt_version) { @@ -29,6 +30,7 @@ $0 - Parrot Configure Options: --debugging Enable debugging + --pedantic Add "-ansi -pedantic" if using gcc --defaults Accept all default values --define name=value Defines value name as value --help This text @@ -73,9 +75,11 @@ cc => $Config{cc}, #ADD C COMPILER FLAGS HERE + cc_inc => "-I./include", ccflags => $Config{ccflags}, libs => $Config{libs}, cc_debug => '-g', + cc_warn => '', o => '.o', # object files extension exe => $Config{_exe}, @@ -99,6 +103,15 @@ cp => 'cp', slash => '/', ); + + +# If using gcc, crank up its warnings as much as possible and optionally +# make it behave ansi-ish. +if ($Config{ccname} eq "gcc") { + $c{cc_warn} = " -Wall"; + $c{cc_warn} .= " -ansi -pedantic" if $opt_pedantic; +} + #copy the things from --define foo=bar @c{keys %opt_defines}=values %opt_defines; Index: Makefile.in =================================================================== RCS file: /home/perlcvs/parrot/Makefile.in,v retrieving revision 1.79 diff -u -r1.79 Makefile.in --- Makefile.in 18 Dec 2001 07:05:00 -0000 1.79 +++ Makefile.in 20 Dec 2001 01:40:30 -0000 @@ -24,7 +24,7 @@ #DO NOT ADD C COMPILER FLAGS HERE #Add them in Configure.pl--look for the #comment 'ADD C COMPILER FLAGS HERE' -CFLAGS = ${ccflags} ${cc_debug} -I./include +CFLAGS = ${ccflags} ${cc_warn} ${cc_debug} ${cc_inc} C_LIBS = ${libs} @@ -33,6 +33,8 @@ PERL = ${perl} TEST_PROG = ${test_prog} PDUMP = pdump${exe} +LINT = lclint +LINTFLAGS = +showscan +posixlib -weak +longintegral +matchanyintegral -formattype # This is set to MAKE=$make if your $make command doesn't # do it for you. ${make_set_make} @@ -173,3 +175,6 @@ update: cvs -q update -dP +lint: ${test_prog} + $(LINT) ${cc_inc} -Iclasses $(LINTFLAGS) `echo $(O_FILES) | sed 's/\.o/\.c/g'` + $(LINT) ${cc_inc} $(LINTFLAGS) test_main.c Index: packfile.c =================================================================== RCS file: /home/perlcvs/parrot/packfile.c,v retrieving revision 1.16 diff -u -r1.16 packfile.c --- packfile.c 6 Dec 2001 21:22:13 -0000 1.16 +++ packfile.c 20 Dec 2001 01:40:31 -0000 @@ -333,7 +333,7 @@ if (segment_size % sizeof(opcode_t)) { fprintf(stderr, "PackFile_unpack: Illegal fixup table segment size %d (must be multiple of %d)!\n", - segment_size, sizeof(opcode_t)); + (int)segment_size, sizeof(opcode_t)); return 0; } @@ -358,7 +358,7 @@ if (segment_size % sizeof(opcode_t)) { fprintf(stderr, "PackFile_unpack: Illegal constant table segment size %d (must be multiple of %d)!\n", - segment_size, sizeof(opcode_t)); + (int)segment_size, sizeof(opcode_t)); return 0; } @@ -1718,7 +1718,8 @@ (long) self->string->bufused); /* TODO: Won't do anything reasonable for most encodings */ printf(" DATA => '%.*s'\n", - self->string->bufused, (char *) self->string->bufstart); + (int)self->string->bufused, + (char *) self->string->bufstart); printf(" } ],\n"); break; Index: pdump.c =================================================================== RCS file: /home/perlcvs/parrot/pdump.c,v retrieving revision 1.6 diff -u -r1.6 pdump.c --- pdump.c 6 Dec 2001 17:48:58 -0000 1.6 +++ pdump.c 20 Dec 2001 01:40:31 -0000 @@ -62,7 +62,10 @@ pf = PackFile_new(); - PackFile_unpack(interpreter, pf, packed, packed_size); + if (!PackFile_unpack(interpreter, pf, packed, packed_size)) { + printf( "Can't unpack.\n" ); + return 1; + } PackFile_dump(pf); PackFile_DELETE(pf); Index: register.c =================================================================== RCS file: /home/perlcvs/parrot/register.c,v retrieving revision 1.12 diff -u -r1.12 register.c --- register.c 22 Oct 2001 18:02:24 -0000 1.12 +++ register.c 20 Dec 2001 01:40:31 -0000 @@ -311,7 +311,7 @@ Parrot_clear_n(struct Parrot_Interp *interpreter) { int i; for (i=0; i<NUM_REGISTERS; i++) { - interpreter->num_reg->registers[i] = 0; + interpreter->num_reg->registers[i] = 0.0; } } Index: string.c =================================================================== RCS file: /home/perlcvs/parrot/string.c,v retrieving revision 1.24 diff -u -r1.24 string.c --- string.c 13 Dec 2001 16:21:55 -0000 1.24 +++ string.c 20 Dec 2001 01:40:31 -0000 @@ -47,7 +47,7 @@ s->encoding = encoding; s->buflen = s->bufused = buflen; s->flags = flags; - string_compute_strlen(s); + (void)string_compute_strlen(s); s->type = type; return s; Index: include/parrot/key.h =================================================================== RCS file: /home/perlcvs/parrot/include/parrot/key.h,v retrieving revision 1.2 diff -u -r1.2 key.h --- include/parrot/key.h 12 Dec 2001 02:12:15 -0000 1.2 +++ include/parrot/key.h 20 Dec 2001 01:40:32 -0000 @@ -46,6 +46,7 @@ INTVAL key_size(struct Parrot_Interp *interpreter, KEY *key); void key_set_size(struct Parrot_Interp *interpreter, KEY *key, INTVAL size); void key_destroy(struct Parrot_Interp *interpreter, KEY *key); +INTVAL key_element_type(struct Parrot_Interp *interpreter, KEY* key, INTVAL index); KEY_PAIR* key_element_value_i(struct Parrot_Interp *interpreter, KEY *key, INTVAL index); KEY_PAIR* key_element_value_s(struct Parrot_Interp *interpreter, KEY *key, STRING* index); void key_set_element_value_i(struct Parrot_Interp *interpreter, KEY *key, INTVAL index, KEY_PAIR* value); Index: include/parrot/trace.h =================================================================== RCS file: /home/perlcvs/parrot/include/parrot/trace.h,v retrieving revision 1.2 diff -u -r1.2 trace.h --- include/parrot/trace.h 13 Dec 2001 16:21:55 -0000 1.2 +++ include/parrot/trace.h 20 Dec 2001 01:40:33 -0000 @@ -19,6 +19,9 @@ trace_op_dump(struct Parrot_Interp *interpreter, opcode_t *code_start, opcode_t *pc); void +trace_op(struct Parrot_Interp *interpreter, opcode_t * code_start, opcode_t * +code_end, opcode_t *pc); + +void trace_op_b0(struct Parrot_Interp *interpreter, opcode_t * code_start, opcode_t *pc); void Index: platforms/generic.c =================================================================== RCS file: /home/perlcvs/parrot/platforms/generic.c,v retrieving revision 1.2 diff -u -r1.2 generic.c --- platforms/generic.c 7 Nov 2001 14:43:34 -0000 1.2 +++ platforms/generic.c 20 Dec 2001 01:40:33 -0000 @@ -2,6 +2,7 @@ ** platform.c [generic version] */ +#include <time.h> #include <sys/time.h> #include <dlfcn.h>