Revision history for Perl extension SOOT. 0.16 Wed Aug 10 18:00 2011 * New features: - Additional interface for TClass to make method-related information such as "which methods of this object start with Foo?" and full method prototypes available conveniently to Perl. To be used by SOOT::App autocompletion. - Some operations (such as filling histograms) are faster because they were explicitly wrapped instead of relying on the slow dynamic wrapping. - More examples. * Maintenance: - Upgraded all the bundled build tools. 0.15 Tue Jul 26 18:40 2011 * Bug fixes: - 0.14 was missing files. 0.14 Tue Jul 26 18:30 2011 * New features: - Autocasting. Some methods like Clone() or FindObject() return a TObject* according to ROOT. In practice, these objects will be of types that inherit from TObject but seldomly JUST a TObject. From now in, when returning a ROOT object, SOOT will attempt to auto-cast into the right class instead of relying on the ROOT interface definition to return the correct type. If you would previously do $clone = $th1d->Clone()->as('TH1D'); $clone->Draw(); you can now get away with $clone = $th1d->Clone; $clone->Draw(); - TExec was wrapped to allow CINT and Perl callbacks: my $texec = TExec->new("name", sub { do_something() }); $texec->Exec(); Same for TPad::AddExec(). - !$tobject is now overloaded to DWIM. - Documented more differences to C++/ROOT - Wrapped TRandom::Rannor() (see "perldoc SOOT") - More examples * Bug fixes: - When the ->Fit method of, say, TGraph returned a TFitResultPtr, SOOT didn't really know how to handle it properly. TFitResultPtr's are now automatically dereferenced into TFitResult objects or become a Perl undef. - Various fixes to make the build system lazier. 0.13 Wed Mar 23 20:50 2011 * New features: - SOOT can export a convenience Run() function. - SOOT::Struct now generates TObject subclasses. This is subject to change. 0.12 Thu Dec 2 22:35 2010 * Bug fixes: - They gave me a Mac and now I have to support the OS... 0.11 Tue Sep 21 21:00 2010 * Bug fixes: - Compile fix in PtrTable for some gccs. 0.10 Tue Sep 21 20:00 2010 * Bug fixes: - Better error reporting (no more false error location in TObject.pm) * New features: - Optimized TF1::GetRandom calls - Wrapped TFitResultPtr - Updated examples. - Updated all the bundled modules. 0.09 Wed Apr 21 18:00 2010 * New features: - Using Alien::ROOT, on which we now depend at configure time, it's possible to get an entirely working, private copy of ROOT for SOOT. That means on a virgin (Linux!) machine, you can do the following to install SOOT and all of its dependencies: $ cpan SOOT - Now using Alien::ROOT to detect ROOT. 0.08 Sun Apr 11 12:12 2010 * Bug Fixes: - Perl 5.12 compatibility. - Now buildable on unthreaded perls. * New features: - SOOT::Struct: Dynamic struct generation You can use SOOT::Struct to create new C-level struct types at run-time. These structs are then also available as Perl classes with the corresponding accessor methods for the struct attributes. - RunTimeXS: Cached accessor methods for structs. RunTimeXS is a mechanism to create XSUBs at run time. It's currently used to install the accessor methods for structs. This brings a 60-fold speed-up for struct access: O(millions) calls per second! * Internals: - unsigned int array conversions - AVToIntegerVecInPlace and friends for conversion of an AV to existing, pre-allocated data members * Updates, etc: - Brought bundled Module::Build and ExtUtils::CBuilder up to date. 0.07 Wed Mar 30 20:00 2010 * Bug Fixes: - Fix memory leak on each method call. => currently all leak checks pass! - Call *correct* object destructors before free-ing ROOT objects. * Internals: - Some refactoring => Replace macro IS_TOBJECT with an inlined function. => Better debugging mode/output => Better leak tests => Replace some use of char* with std::strings 0.06 Fri Mar 26 20:00 2010 * New features: - Conversion to Module::Build! - All non-core build-time dependencies should be bundled now. - Expose $gHistImagePalette $gWebImagePalette - Quite a few more examples. - Copy constructors. - Installation documentation - SOOT->LoadNUpdate('libGeomBuilder.so'); => Will load the shared library and regenerate the class templates. * Bug fixes: - Fix for method calling bug wrt. invalidated MethodInfo. * Internals: - AUTOLOAD bootstrapping now done in XS (read: C) for performance. - Various simplifications and refactoring of the internals. 0.05 Mon Mar 8 20:00 2010 - Completely revamped the way that the ROOT classes are bootstrapped. - Fix for the "enum*" return value bug (cf. TH1D::GetXaxis()) - Implemented function calling (I.e. TMath::Abs()) => Hacky implementation, needs revisiting. - TF1::GetParErrors() returns a Perl array now and so does TFormula::GetParameters() - Optimizations in TObjectEncapsulation. - Fix for the return value of SOOT::API::type() - SOOT::API::is_same_tobject() (and tests for object equality) - SOOT::API::is_soot_class() - Started documenting SOOT <-> ROOT differences for users - Many more examples 0.04 Fri Feb 26 21:00 2010 - Memory leak fixes. - Inlined copy of toolchain => Doesn't fully work for building the src/ subdirectory yet. - Examples now also shipped as documentation. - Manual casting with $axis->as('TAxis') This is sometimes necessary to work around mistakes in the type inference. - $obj->keep() to manually mark an object as "do not free this on behalf of Perl". - Expose $gEnv. - Expose SOOT::Init(bool) which intializes the underlying TCint and (if bool is true) load the .rootrc logon macros (C!). - Inheritance-respecting, recursive class generation. - SOOT::Load(className, ...) for exposing extra ROOT classes to Perl. - Pointer-table state can be dumped for debugging (see GC item below). - Added complete reference counting "garbage collector" or rather ROOT<->Perl memory interface a la PyROOT's TMemoryRegulator. 0.03 Sun Feb 21 21:00 2010 - Many more examples. - Lazy initialization of ROOT globals (gPad!) - Constants actually work now. - gBenchmark - TH1* doesn't inherit from TArray in the wrapper - for now. - TArray* construction from Perl arrays: my $tarrayd = TArrayD->new([1., 2., ...]); - More tests! 0.02 Sat Feb 20 17:30 2010 - List of candidate methods shown on bad method invocation. - Fixed problems with globals (gROOT, etc) and global interpreter destruction. - Implemented wrapping of more globals: gStyle, gDirectory, gROOT, gSystem, etc. - A bunch of examples (some working, some not yet) in examples/ - Recognize "short" as integer type. - Fixed memory leak of array-of-basic-type arguments and return types. - Fixed MethodInfo leak. - Reference/Pointer equality. "const" references still to-do. - More Perl-SOOT API: Class name iterator. - Allow export of various constants/enums such as kRed, kTRUE, etc. 0.01 Tue Feb 9 19:31 2010 - original version