>>
>>> 1. Operators get confused with the type of enum constants
>>> and can't figure out they're ints. Explicit casting working.
>>> For example, using the enum on p. 41 of the spec,
>>> writef(:enum val 0x%06xu\n", foo.red)
>>> works,
>>> writef("red plane 0x%06xu\n", pixel & foo.red);
>>> does not, but
>>> writef("red plane 0x%06xu\n", pixel & (foo.red : uint));
>>> does.
>>
>> I'm trying to reproduce this problem and not having much luck. What is
>> the type of pixel? Could you send a code snippet demonstrating the issue?
>>
>>
>
> This fails to compile:
> enum clrmasks { RED = 0xff0000, GREEN=0x00ff00, BLUE=0x0000ff }
> var g = 0x123456 & clrmasks.GREEN;
> with a modules/internal/ChapelBase.chpl:532 error: Initializng
> parameter 'ret' to value not known at compile time
>
> So does
> writef("g = 0x%06xu\n", 0x123456 & clrmasks.GREEN);
>
> But this works
> const pix = 0x123456;
> writef("g = 0x%06xu\n", pix & clrmasks.GREEN);
>
> I would swear we had code involving the bit operators or assignment
> that failed because the compiler couldn't resolve the types of the
> arguments that worked a variable, but since it never compiled, the code
> never got checked in and saved; it'll be hard to duplicate the exact
> problem, but I'll see if I can find an old version.
OK, I think I've got enough to go on here from the examples you've given,
and we've got some other issues filed against param enums (which is what
you're bumping into here), so no need to spend too much time trying to
reproduce additional cases at this point for my sake.
>>> 2. Will it be possible to use a multi-dimensional array as an
>>> argument? It generates a compiler error
>>> > unresolved call 'chpl__buildArrayRuntimeType(nil, type int(64))'
>>> > note: candidates are: chpl__buildArrayRuntimeType(dom : domain,
>>> type eltType)
>>
>> Could you send a code snippet for this one too? It is possible to pass
>> multidimensional arrays around as arguments. The issue may relate more
>> to the formal argument type than the actual argument passed...
>>
>> -Brad
>>
>
> It's the same problem here. This was in an early attempt in a program
> that didn't compile, so the data structures were changed (pushing the
> one array into a class and passing an array of instances). It never
> got saved. I'll see if it can be regenerated.
This one remains more puzzling to me, though -- you should be able to just
pass the arrays through directly as arguments, and I'd like to understand
what happened here, so if you can reproduce, please let us know.
Thanks,
-Brad
------------------------------------------------------------------------------
_______________________________________________
Chapel-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-bugs