
The ChangeLog for data.table is the SVN commit log itself :
    $ svn log svn://svn.r-forge.r-project.org/svnroot/datatable

This NEWS file summarises the main changes.

        *********************************************
        **                                         **
        **   CHANGES IN DATA.TABLE VERSION 1.5     **
        **                                         **
        *********************************************


NEW FEATURES

    o   data.table now *inherits* from data.frame, for functions and
        packages which _only_ accept data.frame, saving time and
        memory of conversion. A data.table is a data.frame too;
        is.data.frame() now returns TRUE.
    
    o   Integer-based date and time-of-day classes have been 
        introduced. This allows dates and times to be used as keys
        more easily. See as.IDate, as.ITime, and IDateTime.
        Conversions to and from POSIXct, Date, and chron are
        supported.
    
    o   [<-.data.table and $<-.data.table were revised to check for
        changes to the key-ed columns. [<-.data.table also now allows
        data.table-style indexing for i. Both of these changes may
        introduce incompatibilities for existing code.
        
    o   Logical columns are now allowed in keys. Logical columns (and
        expressions that evaluate to logical) are now allowed in 'by'.
        Thanks to David Winsemius for highlighting.
            
        
BUG FIXES

    o   DT[,5] now returns 5 as FAQ 1.1 says, for consistency
        with DT[,c(5)] and DT[,5+0]. DT[,"region"] now returns
        "region" as FAQ 1.2 says. Thanks to Harish V for reporting.
        
    o   When a quote()-ed expression q is passed to 'by' using
        by=eval(q), the group column names now come from the list
        in the expression rather than the name 'q' (bug #974) and,
        multiple items work (bug #975). Thanks to Harish V for
        reporting.
        
    o   quote()-ed i and j expressions receive similar fixes, bugs
        #977 and #1058. Thanks to Harish V and Branson Owen for
        reporting.
        
    o   Multiple errors (grammar, format and spelling) in intro.Rnw
        and faqs.Rnw corrected by Dennis Murphy. Thank you.
        
    o   Memory is now reallocated in rare cases when the up front
        allocate for the result of grouping is insufficient. Bug
        #952 raised by Georg V, and also reported by Harish. Thank
        you.
        
    o   A function call foo(arg=sum(b)) now finds b in DT when foo
        contains DT[,eval(substitute(arg)),by=a], fixing bug #1026.
        Thanks to Harish V for reporting.
        
    o   If DT contains column 'a' then DT[J(unique(a))] now finds
        'a', fixing bug #1005. Thanks to Branson Owen for reporting.
        
    o   'by' on no data (for example when 'i' returns no rows) now
        works, fixing bug #709.
        
    o   'by without by' now heeds nomatch=NA, fixing bug #1015.
        Thanks to Harish V for reporting.
        
    o   DT[NA] now returns 1 row of NA rather than the whole table
        via standard NA logical recycling. A single NA logical is
        a special case and is now replaced by NA_integer_. Thanks
        to Branson Owen for highlighting the issue.
        
    o   NROW removed from data.table, since the is.data.frame() in
        base::NROW now returns TRUE due to inheritance. Fixes bug
        #1039 reported by Bradley Buchsbaum. Thank you.
        
    o   setkey() now coerces character to factor and double to
        integer (provided they are all.equal), fixing bug #953.
        Thanks to Steve Lianoglou for reporting.
        
    o   'by' now accepts lists from the calling scope without the
        work around of wrapping with as.list() or {}, fixing bug
        #1060. Thanks to Johann Hibschman for reporting.
        
        
NOTES

    o   The package uses the 'default' option of base::getOption,
        and is therefore dependent on R 2.10.0. Updated DESCRIPTION
        file accordingly. Thanks to Christian Hudon for reporting.


        *********************************************
        **                                         **
        **   CHANGES IN DATA.TABLE VERSION 1.4.1   **
        **                                         **
        *********************************************


NEW FEATURES

    o   Vignettes tidied up.
    
        
BUG FIXES

    o   Out of order levels in key columns are now sorted by
        setkey. Thanks to Steve Lianoglou for reporting.

        


        *******************************************
        **                                       **
        **   CHANGES IN DATA.TABLE VERSION 1.4   **
        **                                       **
        *******************************************


NEW FEATURES

    o   'by' faster. Memory is allocated first for the result, then
    populated directly by the result of j for each group. Can be 10
    or more times faster than tapply() and aggregate(), see
    timings vignette.
    
    o   j should now be a list(), not DT(), of expressions. Use of
    j=DT(...) is caught internally and replaced with j=list(...).
    
    o   'by' may be a list() of expressions. A single column name
    is automatically list()-ed for convenience. 'by' may still be
    a comma separated character string, as before.
        DT[,sum(x),by=region]                     # new
        DT[,sum(x),by=list(region,month(date))]   # new
        DT[,sum(x),by="region"]                   # old, ok too
        DT[,sum(x),by="region,month(date)"]       # old, ok too
         
    o   key() and key<- added. More R-style alternatives to getkey()
    and setkey().
    
    o   haskey() added. Returns TRUE if a table has a key.
    
    o   radix sorting is now column by column where possible, was
    previously all or nothing. Helps with keys of many columns.
    
    o   Added format method.
    
    o   22 tests added to test.data.table(), now 149.
    
    o   Three vignettes added : FAQ, Intro & Timings


DEPRECATED & DEFUNCT

    o   The DT alias is removed. Use 'data.table' instead to create
    objects. See 2nd new feature above.
    
    o   RUnit framework removed.
    test.data.table() is called from examples in .Rd so 'R CMD check'
    will run it. Simpler. An eval(body(test.data.table))
    is also in the .Rd, to catch namespace issues.
    
    o   Dependency on package 'ref' removed.
    
    o   Arguments removed:  simplify, incbycols and byretn.
    Grouping is simpler now, these are superfluous.
    
    
BUG FIXES

    o   Column classes are now retained by subset and grouping.
    
    o   tail no longer fails when a column 'x' exists.

    
KNOWN PROBLEMS

    o   Minor : Join Inherited Scope not working, contrary
        to the documentation.


NOTES

    o   v1.4 was essentially the branch at rev 44, reintegrated
    at rev 78.




        *******************************************
        **                                       **
        **   CHANGES IN DATA.TABLE VERSION 1.3   **
        **                                       **
        *******************************************
        
        
NEW FEATURES

    o   Radix sorting added. Speeds up setkey and add-hoc 'by'
    by factor of 10 or more.
    
    o   Merge method added, much faster than base::merge method
    of data.frame.
    
    o   'by' faster. Logic moved from R into C. Memory is
    allocated for the largest group only, then re-used.
    
    o   The Sub Data is accessible as a whole by j using object
    .SD. This should only be used in rare circumstances. See FAQ.
    
    o   Methods added : duplicated, unique, transform, within,
    [<-, t, Math, Ops, is.na, na.omit, summary
    
    o   Column name rules improved e.g. dots now allowed.
    
    o   as.data.frame.data.table rownames improved.
    
    o   29 tests added to test.data.table(), now 127.
        
        
USER-VISIBLE CHANGES

    o   Default of mb changed, now tables(mb=TRUE)


DEPRECATED & DEFUNCT

    o   ... removed in [.data.table.
    j may not be a function, so this is now superfluous.
    
    
BUG FIXES

    o   Incorrect version warning with R 2.10+ fixed.
    
    o   j enclosure raised one level. This fixes some bugs
    where the j expression previously saw internal variable
    names. It also speeds up grouping a little.


NOTES

    o   v1.3 was not released to CRAN. R-Forge repository only.




        ********************************************
        **                                        **
        **   VERSION 1.2 RELEASED CRAN AUG 2008   **
        **                                        **
        ********************************************


