Thanks for trying this out. I assume that you're trying the ponie-2 tarball
from CPAN? If so, that's somewhat out of date, so this might be part of
the problems (but not all, I suspect).

All the errors you've reported so far appear to come from parrot, rather than
being ponie specific so it's probably better to shift this thread over to the
perl6-internals list, where the parrot folks live.

I'm not sure if anyone has ever tried to build parrot on Solaris 2.5, or on
Solaris x86. I've had some "fun" building it on prerelease Sparc Solaris 10,
but that was almost all down to ICU, and occurred much later in the build
than the problems you seem to be seeing.

On Tue, Dec 28, 2004 at 10:56:23PM -0600, [EMAIL PROTECTED] wrote:

For all on perl6-internals, the first message of this thread is

http://www.nntp.perl.org/group/perl.ponie.dev/359

and refers to the asctime_r errors.

> Now I see:
> ops/core_ops.c
> ops/io.ops: In function `Parrot_tell_i_i_p':
> ops/io.ops:507: warning: right shift count >= width of type
> ops/core_ops_prederef.c
> ops/io.ops: In function `Parrot_pred_tell_i_i_p':
> ops/io.ops:507: warning: right shift count >= width of type
> ops/core_ops_switch.c
> ops/io.ops: In function `switch_core':
> ops/io.ops:507: warning: right shift count >= width of type
> ops/core_ops_cg.c
> ops/io.ops: In function `cg_core':
> ops/io.ops:507: warning: right shift count >= width of type
> 
> which points to:
> op tell(out INT, out INT, in PMC) {
>   if ($3) {
>     PIOOFF_T pos;
>     pos = PIO_tell(interpreter, $3);
>     $1 = (INTVAL)(pos >> 32);
>     $2 = (INTVAL)(pos & 0xffffffff);
>   }
>   goto NEXT();
> }
> 
> 
> which means my PIOOFF_T is less than 32 bits?  Hmm ...

I suspect that it means that your PIOOFF_T is exactly 32 bits, as the error
is ">=", not ">", and a shift of the width of the type is undefined behaviour
in C. Which would mean that the parrot code is buggy for the case of non-
large-files systems.

Are you using the Sun compiler, or gcc? I'm not sure which would produce
that warning, but my hunch would be the Sun compiler as shifts happen to be
modulo 32 on x86, but IIRC are modulo 256 on Sparc, hence it would be
something I'd expect a Sun compiler to spot, as it would be an easy
portability gotcha to fall into on Solaris.

Nicholas Clark

Reply via email to