Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [imp-dev] A note on the different implementations of IValueFactory in pdb.values

Thanks, Jurgen, for merging in the contributions, and THANKS!!! Arnold for the contributions!!! These are sorely needed improvements!

As to the compatibility issue, how about putting some sort of a haeder on the serialization format to avoid the more subtle mix-and-match errors?

On Jun 1, 2009, at 2:53 PM, Jurgen Vinju wrote:

Dear imps,

I've merged the contributions of Arnold Lankamp (CQ 3288) to
org.eclipse.imp.pdb.values. This includes the
binary streamable (de)serialization format for values and two
implementations of IValueFactory
and respective implementations of IValue and friends.

Note that values constructed from/by different IValueFactories are not
to be mixed. We currently
do not cater for this in any of the implementations. It wasn't one of
our design decisions either to
have such a feature (point to ponder).

Caution advised! Mixing values from different factories is quite an
easy pit to fall into.
Common symptoms {sh,c,w}ould be:
 - ClassCastExceptions
- surprising inequalities between values (also with the isEqual() method)
 - surprising double occurring elements in sets or tuples in
relations or keys in maps (caused by previous point)

Nevertheless, the two new factories improve performance dramatically
as compared to the reference implementation
of IValueFactory. Pdb.fast is the current high speed champion in most
of the tested analyses that deal with relations
and pdb.shared wins for analyses that deal with trees a lot.

--
Cheers,
  - Bob
-------------------------------------------------
Robert M. Fuhrer
Research Staff Member
Programming Technologies Dept.
IBM T.J. Watson Research Center

IMP Project Lead (http://www.eclipse.org/imp)
X10: Productivity for High-Performance Parallel Programming (http://x10.sf.net )



Back to the top