[kepler-dev] Type error with NondeterministicMerge under Kepler
Norbert Podhorszki
pnorbert at cs.ucdavis.edu
Wed Aug 8 15:31:51 PDT 2007
Hi Stephen,
Thanks for the explanation. I missed to look at the RecordDisassembler.
However, I believe, that actor declares exactly what has to declared.
So it's the nondet.merge actor which overgeneralizes things.
Because of the difficulty of tracking down a type problem in a workflow
with many actors (actually thousands, in several levels of composites) I
wished many times to be able to turn off the type checking in Kepler. But
it always turned out finally that the error was real and saved me from a
nervous breakdown later. So we do not want to ignore the type checking...
Cheers
Norbert
On Wed, 8 Aug 2007, Stephen Neuendorffer wrote:
> The problem has to
> do with the fact that RecordDisassembler is one of the few actors
> that has a real type requirement:
>
> RecordType declaredType = new RecordType(labels, types);
>
> input.setTypeAtMost(declaredType);
>
> The input has to be a record (with certain fields),
> *and the actor requires that the type system be able to prove this*.
> Note that most actors don't actually have input constraints (which
> should
> always be setTypeAtMost()) and just assert their output types (which
> should always be setTypeAtLeast() or maybe setTypeEquals()).
>
> I also really don't understand at all why the NonDeterministicMerge
> actor
> in Kepler has the types forced to be general. This won't work
> with any actor that has real type requirements. If kepler really
> wants to ignore the type system, it is going to have to turn off
> type inference entirely, in which case having 'general' as the
> declared types will be extranneous anyway...
>
> Steve
More information about the Kepler-dev
mailing list