.. include:: crossreferences.asc .. |title| replace:: Several Object Implementations .. |wp| replace:: WP42 .. |start| replace:: M2 .. |p1| replace:: X .. |m1| replace:: 4 .. |p2| replace:: Y .. |m2| replace:: 4 .. |p3| replace:: Z .. |m3| replace:: 4 .. |p4| replace:: |e| .. |m4| replace:: |e| .. |p5| replace:: |e| .. |m5| replace:: |e| .. |p6| replace:: |e| .. |m6| replace:: |e| .. include:: wp-toptable.asc .. include:: wp-tablebegin.asc **Objectives** - Providing several object implementations for - general optimisation - application specific alternatives .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc **Description of work** The following objects are mostly independent from any particular low-level run-time environment. * Implement dictionaries as hash-table vs. plain (key, value) lists vs. b-trees, or with string-only or integer-only keys. Dictionaries with specific support for "on-change" callbacks (useful for Psyco). * Implement strings as plain immutable memory buffers vs. immutable but more complex data structures (see functional languages) vs. internally mutable data structures (e.g. Psyco's concatenated strings) * Implement ints as machine words vs. two machine words vs. internal longs vs. external bignum library (investigate if completely unifying ints and longs is possible in the Python language at this stage). * Consider further objects and do multiple implementations of them. * Run various performance tests on the above, check for an overall improvement or application dependency. * Create reports and merge the results back into the optimization effort. As of general interest, submit the reports as publication. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc **Deliverables** - DL??? to be defined. Publication. - DL??? Passing all applicable elements of the standard test suite for every tested alternative. .. include:: wp-tableend.asc .. include:: wp-tablebegin.asc **Milestones and Expected Result** - M4 with M3 WP43_ WP44_ .. include:: wp-tableend.asc