1: A benchmark that instantiates N classads, adds A attributes into it, and then deletes them. Compare execution time and size b/w new and old classads.
 *:: _Nick_ *DONE*
 
-2: A benchmark that instantiates N classads, then does a constraint evaluation on all of them. Compare execution time and size b/w new and old classads.
+1: A benchmark that instantiates N classads, then does a constraint evaluation on all of them. Compare execution time and size b/w new and old classads.
 *:: _Nick_ *DONE*
 
-3: Grab the output of condor_status -l off one of the collectors (?) on a pool to get all the machine classads in the pool into a text file. Suck this up into a program which instantiates a classad for each of these machines. (Maybe make 10 instances of classads for each machine to magnify results). Check memory footprint; compare b/w new and old classads.
+1: Grab the output of condor_status -l off one of the collectors (?) on a pool to get all the machine classads in the pool into a text file. Suck this up into a program which instantiates a classad for each of these machines. (Maybe make 10 instances of classads for each machine to magnify results). Check memory footprint; compare b/w new and old classads.
 *:: _Nick_ *Done*
 
-4: Similarly with a job queue, grab the job classads, and suck them into a program which instantiates classads for each job in the text file. (Magnify as needed). Check memory footprint; compare b/w new and old classads.
+1: Similarly with a job queue, grab the job classads, and suck them into a program which instantiates classads for each job in the text file. (Magnify as needed). Check memory footprint; compare b/w new and old classads.
 *:: _Nick_ *Done*
 
 {subsection: Analyze data, determine whether to procede or not}
 
-*: Monday, June 1, 2009
+*: Monday, June 1, 2009: All of FW?
 
 {subsection: Conversion}
 {wiki:ClassAdConversionTimeDetailedEstimates Detailed time estimates for individual {quote:ClassAd} methods} are also available.  {wiki:ClassAdConversionTodo The ClassAd conversion TODO} has more details on these individual blocks.
 
 {subsubsection: Pre-Flag Day Tasks}
 
-*: Compatibility functions block 1:
-*:: ClassAd::Assign() *DONE*
-*:: ClassAd::LookupString(MyString) *DONE*
-*:: ClassAd::Insert(const char*) *DONE*
-*:: ClassAd::put()
-*:: ClassAd::initFromStream()
-*:: ClassAd::AssignExpr() *DONE*
-*:: ClassAd::clear() *DONE*
-*:: ClassAd::EvalString(const char*, const class AttrList*, char**)
-*:: ClassAd::EvalString(const char*, const class AttrList*, MyString&)
-*:: ClassAd::NextNameOriginal() *DONE*
-*:: ClassAd::ResetName() *DONE*
-*:: ClassAd::sPrintExpr()
-*:: ClassAd::NextDirtyExpr()
-*:: ClassAd::SetDirtyFlag()
-*:: ClassAd::GetDirtyFlag()
-*:: ClassAd::GetReferences()
-*:: ClassAd::ChainCollapse()
-*:: ClassAd::EscapeStringValue()
-*:: ClassAd::CopyAttribute()
-*:: ClassAd::fPrintAsXML()
-*:: ClassAd::sPrintAsXML()
-*:: ClassAd::IsValidAttrValue()
-*: Write helper functions for these methods which we can't emulate transparently:
-*:: ExprTree::PrintToNewStr() *DONE*
-*:: ExprTree::PrintToStr() *DONE*
-*:: ExprTree::EvalTree()
-*: Add {quote:ClassAds} functions that are in old {quote:ClassAds} but not in new {quote:ClassAds}:
-*:: stringListSize()
-*:: stringListSum()
-*:: stringListAve()
-*:: stringListMin()
-*:: stringListMax()
-*:: stringListMember()
-*:: stringListIMember()
-*:: stringListRegexpMember()
-
-
-{subsection: Flag Day Tasks}
-
-*: Change most or all references to {quote:ClassAd} and {quote:AttrList} with {quote:CompatClassAd}.
-*: Swap in Varghese's new {quote:ClassAdList} class.
-*: Fix up the one or two callsites in matchmaker.cpp that move an ad from one {quote:ClassAdList} to another.
-*: The following methods will need some fixing at the callsites:
-*:: ClassAd::Insert(ExprTree*)
-*:: ClassAd::Lookup()
-*:: ExprTree::RArg()
-*:: ExprTree::LArg()
-*:: ExprTree::PrintToNewStr()
-*:: ExprTree::EvalTree()
-*:: ClassAd::NextExpr()
-*:: ClassAd(char*,char)
-*:: ExprTree::PrintToStr()
-*:: ExprTree::DeepCopy()
-*:: ExprTree::MyType()
-*:: ClassAd::ExchangeExpressions() *DONE*
-*:: ClassAd::unchain() *DONE*
-*:: ClassAd::RestoreChain() *DONE*
-*:: AttrList::put()
+1: Complete round 1 of performance upgrades to new {quote: ClassAds} [ ]: Will, Nick
+June 8
 
-{subsection: Post-Flag Day Tasks}
+1: Scrub through old {quote:ClassAds} for other hidden / unknown features [1 day]: Will
+June 9
 
-*: As time permits, rewrite callsites to make {quote:CompatClassAd} unnecessary. The modified callsites can either use native new {quote:ClassAd} methods or newly-written free-standing functions.
-*:: Replace all usage of attribute {quote:CurrentTime} with {quote:ClassAd} function time(). This can start before the flag day.
+1: Compatibility functions block {quote: #1} [3 days]: Nick, Jaime
+*:: June 8
+
+1: Compatibility functions block {quote: #2} [4 days]: Nick, Jaime, Will
+*:: June 10
+
+1: Write helper functions for these methods which we can't emulate transparently [4 hours]: Will
+*:: June 11
+
+1: Add {quote:ClassAds} functions that are in old {quote:ClassAds} but not in new {quote:ClassAds} [2 days]: Nick
+*:: June 12
+
+{subsubsection: Flag Day Tasks}
+
+1: Change most or all references to {quote:ClassAd} and {quote:AttrList} with {quote:CompatClassAd} [4 hours]: Jaime, Will
+*:: June 15
+
+1: Swap in Varghese's new {quote:ClassAdList} class [?]: Jaime
+*:: June 16
+
+1: Fix up the one or two callsites in matchmaker.cpp that move an ad from one {quote:ClassAdList} to another [4 hours]: Will
+*:: June 17
+
+1: Fix up remaining callsites [5 days]: Nick, Jaime, Will
+*:: June 23
+
+{subsection: Other items revealed in testing}