Re: [perl #61038] parrot 0.8.0 compilation failure in Tru64 5.1B

[email protected] (chromatic)
Newsgroups perl.perl6.internals,perl.perl6.internals
Organization Snafu
Message-ID <[email protected]>
On Wednesday 03 December 2008 18:00:32 Jarkko Hietaniemi wrote:

> First we get a couple of warnings fro some files, but then one file
> refuses to compile (see below).  I didn't notice any other warnings or
> failures during Configure.pl and/or during compilation.

Thanks for the report.

> src/ops/core_ops.c
> cc: Warning: src/ops/object.ops, line 436: Non-void function
> "Parrot_removeattribute_p_s" does not contain a return statement.
> (missingreturn) opcode_t *

We should fix a code generator to handle these, but that's a low priority 
unless I or someone else has a brilliant idea which makes it take five 
minutes.

> cc: Warning: src/ops/object.ops, line 532: Non-void function
> "Parrot_pic_set_returns___pc" does not contain a return statement.
> (missingreturn) opcode_t *

This code's going away.

> src/dynext.c
> cc: Info: src/dynext.c, line 367: In this statement, "(Parrot_dlsym(...))"
> of type "pointer to void", is being converted to "pointer to function
> (pointer to struct parrot_interp_t) returning pointer to struct PMC".  Such
> a cast is not permitted by the standard. (nonstandcast)
> (Parrot_dlsym(handle, cload_func_name));
> ------------^
> cc: Info: src/dynext.c, line 375: In this statement, "(Parrot_dlsym(...))"
> of type "pointer to void", is being converted to "pointer to function
> (pointer to struct parrot_interp_t, pointer to struct PMC) returning void".
>  Such a cast is not permitted by the standard. (nonstandcast) init_func    
>  = (void (*)(PARROT_INTERP, PMC *))(Parrot_dlsym(handle,
> ---------------------------------------------------------^

I added a couple of D2FPTR macros, as we've borrowed them from Perl 5, in 
r34293.  Hopefully this will clear up the warnings.

> src/encoding.c
> cc: Warning: src/encoding.c, line 164: Non-void function
> "Parrot_load_encoding" does not contain a return statement. (missingreturn)
> const ENCODING *
> ^
> cc: Warning: src/encoding.c, line 421: Non-void function
> "Parrot_find_encoding_converter" does not contain a return statement.
> (missingreturn) encoding_converter_t
> ^

I added some function decorations in r34295 which should clear up these 
warnings.

> src/exceptions.c
> cc: Error: src/exceptions.c, line 74: In this statement, "_CONST_STRING_74"
> is not declared. (undeclared) VTABLE_set_integer_keyed_str(interp,
> exception,

I manually fixed these in r34094 and fixed our preprocessor to reject all 
CONST_STRING macros broken across lines in r34095, so this problem should 
never recur.

-- c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.