SEAL 1.7.4
New release based on the same LCG_37 configuration as the previous release.
Changes in detail:
- Foundation
- PluginDumper: Invoke plug-in manager clean up on "-clean" option.
- PluginManager: Add method to optionally clean up the plug-in manager on exit, implemented via internal helper class that will trigger deletion according to policy selected at run-time. Add some more logging.Plus some extra modifications
- SealBase:
- SharedLibrary:Add method to optionally clean up the plug-in manager on exit, implemented via internal helper class that will trigger deletion according to policy selected at run-time. Add some more logging
- some fixers in DirIterator classes
- Dictionary
- DictionaryGenerator:
- Fixed a bug reported by POOL
- Added new command line option --fail_on_warnings to return a status code different from 0 when warnings
- Added new command line option --no_membertypedefs to disbale the definition of typedefs that are members of classes. The problem has been the limitation of the number of typedefs CINT can support
- Some changes for generation of extern C functions (no demangling possible)
- Cintex:
- added PyCintex.py module to emulate the old PyLCGDict module
- fix bug related to free functions
- fix bug for transient data member
- fix bug #11647 with loading dictionaries after opening a root file
- fix problem with pure abstrcat interfaces without having the dictionary of concrete derived classes
- ReflectionBuilder: added selection functionality from within C++, credits to Scott Snyder
- DictionaryGenerator
- corrected generation of typenames for multi-dimensional arrays and pointers to typedefs to functions
- MathLibs
- new version of Minuit with bug fixes found with tests of Andrew McLennan . Main change is in VariableMetricBuilder, where iteration re-start recalculating full second derivatives if tolerance is not sufficient.
- Similar changes have been put in the FumiliBuilder. Fast and good convergence is now obtained
SEAL 1.7.3
Bug fix release based on the new LCG_37 configuration, which contains a new version of ROOT, 4.03.02.g
External Libraries
sockets 1.0
uuid 1.32
gccxml 0.6.0_patch2
boost 1.32.0
clhep 1.9.1
gsl 1.5
python 2.3.4
root 4.04.02g
cppunit 1.8.0
oval 3.5.0
valgrind 2.0.0
qmtest 2.2.1
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.7.2
New release based on LCG_36 .
SEAL 1.7.1
Bug fix release on LCG_36 .
SEAL 1.7.0
New release based on LCG_36 configuration (new ROOT and Boost version)
External Libraries
sockets 1.0
uuid 1.32
gccxml 0.6.0_patch2
boost 1.32.0
clhep 1.9.1
gsl 1.5
python 2.3.4
root 4.04.02f
cppunit 1.8.0
oval 3.5.0
valgrind 2.0.0
qmtest 2.2.1
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.6.3
This release provides new features and
bug fixes. It is based on LCG_35 (new
Root version 4.04.02).
The changes in detail:
- Dictionary
- DictionaryGenerator
- corrected generation of typenames for multi-dimensional
arrays and pointers to typedefs to functions
- support
for pointer to member
- skipping gathering of comments
for "artificial" members
- skipping bit-field data members
(see ISO/IEC 14882:2003 9.6 [class.bits])
- fixed bug #8291 overview: [Reflex] Class properties
don't make it to the class. (concerns only generated class
id properties which were added too late in the generated code)
- Improved normalizeFragment(name) to deal with space
after comma
- fixed bug #8075 overview: lcgdict [Reflex] badly placed
blanks in type names
- Fixed bug #8073 overview: LCGDICT [Reflex]
does not understand C++ compiler primitives
- Fixed bug #8071 overview:
LCGDICT ignores transient flag
- Added to method normalizeFragment(name)
the replacement of equivalent primitive type like short int -> short
- Reflex
- fixed bug #8105 overview: Reflex::Type non-equality does not
work
- added operator != also for Scope, Object, Member
- Object.h: added
forward function "Type dynamicType()
const"
- Type/Scope/Member(Base): new function templateFamiliy which returns
the generalized template type (TypeTemplate, MemberTemplate)
- Remove
Distillerbase - problem with vc71 compiler. Implementations moved
to static functions.
- Fixed [bug #7973] overview: Multiple errors
in reflex (sic!) (addendum: 2 function implementations in Meberbase
fixed)
- VariableBuilder.h/.cpp: New class for generation of data members
in namespaces.
- ReflectionBuilder
- Added #ifdef to protect against adding the forward declarations
of hash map/set for VC++ and GCC.
- Cintex
- Many changes as a result of discussions with Markus. The creation
of TClass is delayed as it is done with the rootcint generated
dictionaries.
- The user interface has changed like this:
- > gSystem->Load("liblcg_Cintex");
- > Cintex::enable();
- > // optional // Cintex::setDebug(1);
- > gSystem->Load("libtest_CintexDictRflx");
//Load the dictionaries
- ROOTClassEnhancer.cpp: Fixed two problems requested by Markus:
- Use
SCOPED name for types in ShowMembers()
- Use the dynamic type
in IsA()
- External Libraries
sockets 1.0
uuid 1.32
gccxml 0.6.0_patch2
boost 1.31.0
clhep 1.9.1.2_spi1
gsl 1.5
python 2.3.4
root 4.04.02
cppunit 1.8.0
oval 3.5.0
valgrind 2.0.0
qmtest 2.2.1
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.6.2
This release provides new functionality
and bug fixes. It is based on LCG_34 (new Root version 4.03.04b,
and new patch applied to GCCXML 0.6.0). The main change is that packages
generating dictionaries generate at the same time the Reflex (xxxRflx) and
Reflection (xxxDict) dictionaries. This change is needed to allow client project
to start working in the migration to Reflex.
The changes in detail:
- Dictionary
- DictionaryGenerator
- Changes to support virtual inheritance by also using new the
patched GCCXML version.
- Changes to generate dictionaries with different names for
Reflection and Reflex.
- Reflex
- new functions to add Function/Datamembers, Subscopes/types
- new function Object::castObject
- Moved several header files from the include directory to src (Array.h
Function.h PointerToMember.h
Class.h FunctionMember.h TemplateInstance.h
ClassTemplateInstance.h FunctionMemberTemplateInstance.h Typedef.h
DataMember.h Fundamental.h Union.h
Enum.h Namespace.h
FuncHandler.h Pointer.h)
- New classes Union,Enum,Typdef/Builder
- removing fundamentals from global namespace
- SealCLHEP
- added instantiations/dictionaries for stl vectors of Point/Vector
Geometry classes
- changes for generation of two dictionaries
- SealDict
- changes for generation of two dictionaries
- SealROOT
- changes for generation of two dictionaries
- SealSTL
- changes for generation of two dictionaries
- Cintex
- Support for dealing with virtual inheritance
- Define the scopes to CINT for types that there are not yet defined
in Reflex
- Scripting
- Mathlibs
- Minuit
- Added new tests: test_Minuit_DemoFumili for a simple Gaussian Fit using Fumili
SEAL 1.6.1
This is a bugfix releases. The main changes are in Dictionary/Reflex and Scripting/Pyreflex.
Some enhancements were also incorporated into Reflex.
The changes in detail are:
- Dictionary
- DictionaryGenerator
- added automatic generation of enums and typedefs from selected
classes
- change to generate always the templated name (using demangle) for
templated functions
- Reflex
- added support for enums and typedefs in ClassBuilder
- added Object::operator bool()
- added generation of templated free functions
- Member/Type/Scope new function "bool isTemplateInstance()" to check
templated types/members (all other functions removed)
- added functionality for MemberTemplates
- Cintex
- Changed operator method names (removed space between "operator"
and operator)
- SealSTL
- added instantiations for hash_containers (hash_map, hash_set,
hash_multimap, hash_multiset)
- Scripting
- Pyreflex
- Object ownership protocol introduced. Objects which are "owned"
by their proxies are deleted when the proxy is garbage
collected. By default, objects constructed in Python
as well as those returned by value, are owned by the
proxy. Objects returned by pointer or by reference are
not owned by the proxy. The user may change the
ownership status with the functions take_ownership and
drop_ownership. The ownership status may be inspected
with the function does_proxy_own.
- Function templates have been added.
- C++ exceptions result in Python exceptions rather than aborts.
- Upcasting, in cases where some intermediate base class
is not in the dictionary, is possible on platforms
supporting CXXABI. (ie NOT Windows.)
SEAL 1.6.0
This major release introduces several new packages, provides new functionality
and bug fixes. It is based on LCG_33 configuration
and uses Root version 4.03.02.
The new packages are: Cintex providing the capability of filling
CINT data structures from Reflex information. Pyreflex a python
binding to the Reflex package. MathCore providing basic mathematical
functions and numerical algorithms. Highlights of new functionality are
template support with Reflex and additions in Minuit to the Fumili optimizer.
The changes in detail are:
- MathLibs
- MathCore
- New package which provides a collection of functions and C++ classes for HEP numerical computing. This version of the library (version 0_0_3) provides only the basic mathematical functions and algorithms and not all the functionality required by the HEP community. For more information on the content see the MathCore reference documentation.
- Minuit
- The Fumili minimizer has been added in the package. Fumili is a specialized minimizers for chi2 and likelihood fits, that uses the property of these functions to estimate the Hessian matrix and in general it converges faster (with less iterations) to the minimum.
- FML
- FML has also been modified to include the interface to Fumili. So now Chi2 or unbinned likelihood fits can be performed using Fumili. In addition some bug fixes are applied in this release related to fix/release parameters
- Dictionary
- Cintex
- New package to provide Reflex dictionary information for CINT data
structures
- Reflex
- Moved from pointer to object based implementation (a few wrapper
classes provide full API to user)
- new implementation for TypeTemplates and MemberTemplates
- added autoconf, automake scripts
- new function
"name(unsigned)"
- argument can be a combination of enum
values "SCOPED", "FINAL", "QUALIFIED"
- replaces functions "fullName()" and "name(bool)"
- Fixed bug #6685 Type equivalence operator.
- Fixed bug #5420 overview: typeInfo() always returns NullType for
typedefs
- Fixed bug #6247 overview: Class::pathToBase returns invalid
- Fixed bug #6161 overview: reflex::Scope.subScope*() do not give
access to classes which inherit from others.
- DictionaryGenerator (for Reflex dictionaries)
- new method modifiers OPERATOR and CONVERTER, operator and converter
names to prefix them with "operator"
- Added the possibility to obtain the end-of-line comment and add
it as a member property (new switch --comments)
- Fixed bug #5323 overview: Typedef::fullName() isn't "full".
- Fixed bug #5275 overview: Stub functions for methods on objects
in the std namespace, are broken
- Fixed bug #5253 overview: Remove "using namespace seal::reflex;" from
dictionary source.
- Reflection / ReflectionBuilder
- Applied patches for 64 bit archtiecture provided by Rosa.Garcia@cern.ch
- CollectionProxy new header file to be included when generating
new collection proxies
- Fix resolving the string representation of a field type
- SealROOTDict
- created seal python packge and move ROOT.py in there to avoid clashes
with the module delivered by ROOT 4.
- Scripting
- PyLCGDict2
- Added C++-to-Python exception propagation
- Pyreflex
- First release of Pyreflex
- Major remaining shortcomings:
- Templates: Structured access not implemented
- Known memory leaks
- Python-side pointers and arrays: much functionality
still missing
- Features not presents in pylcgdict
- Typdefs
- Non-member functions
- Independent of Boost
- External Libraries
sockets 1.0
uuid 1.32
gccxml 0.6.0_patch1
boost 1.31.0
clhep 1.9.1.2_spi1
gsl 1.5
python 2.3.4
root 4.03.02
cppunit 1.8.0
oval 3.5.0
valgrind 2.0.0
qmtest 2.2.1
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.4.2 (1.5.2)
This release is minor version of SEAL and introduces new functionality in
addition to a number of bug fixes and changes in the external packages versions.
It is based on the LCG_30 configuration.
( version 1.5.2 with ROOT version 4.00.08 )
The highlights of this release are: the new Reflex package (C++ reflection)
in parallel with the old reflection packages to allow testing and adapting
client software such as PyLCGDict and POOL to the new package.
The changes in detail:
- Foundation:
- SealUtil: SimpleTime, SimpleTimeDuration and SimpleTimeInterval classes have been removed. Their functionality is provided from SealBase Time and TimeScan. SimpleChrono has then been modified to use now SealBase Time. A new chrono timer is added, SealTickChrono for measuring time in clock ticks units and it is based on SealBase TimeInfo::realCycles(). TimerReport has been modified according to a user request to have a more compact dump format.
The tests have been modified removing the dependency on ROOT.
- MathLibs:
- Minuit: fixed a compilation problem on MacOSX and removed an assert in the variable metric builder which was causing problems to CMS code. The tests contain in addition some fixes for Windows.
- FML: The implementation of the Minimizer interface using Minuit (Migrad, Simplex and Minimize) has been included directly inside FML, removing the need for having the FMLMinuit package. Some modifications have been applied to the FitMethod classes and the DataVector to improve performances after having profiled the code. The DataVector interface has also been changed, the user does not need to pass data point values and errors when they are not needed (un-binned fits). A bug was also fixed in the NormGaussModelFunction and some clode clean-up in FunctionCataloge
- PyFML: Dictionary Library for the user classes of FML. To be used for fitting from Python with PyLCGDict
- Framework:
- Fixed Bug [#3104]
and [#4140]
Messages go to cout, not cerr. This messes up output from FileCatalog commands
such as FClistPFN.
- Changed IMessageService interface to associate an output stream (std::ostream)
per message level.
- MessageService: Updated due to changed IMessageService interface and
implementation switched from
single output reporter to configurable multiplexed output streams by using
separate Reporter for each message level.
- Dictionary:
- Reflex:
- First release of the new dictionary library. This library supports
closer the ISO standard for C++ and will superseed Reflection/ReflectionBuilder
in the future
- With the release of Reflex the following Bugs will be fixed:
- Fixes Bug [#1371]
typedef (and default template parameters) not supported in dictionary
declaration
- Fixes Bug [#1760]
reflect::Field::set()
- Fixes Bug [#3407]
arrays not supported
- Reflection/ReflectionBuilder:
- Added support for SUN Forte compiler
- DictionaryGenerator:
- Added possibility to generate Reflex compliant dictionaries (with
--reflex option)
- Added support for Functions and Operators ( with <function
name=xxx/> )
- Added possibility to select and exclude classes on the file name
(or pattern) where they are defined (with <class file_name
= "full_file_name"/> or <class file_pattern = "wildcard_file_name"
/> )
- Fixed Bug [#5036]
--pool does not work anymore for root 4 (pool 2.0.0)
- Fixed Bug [#5119]
lcgdict should provide a means excluding just a single class, from
a given header.
- Fixed Bug [#3986]
lcgdict command should terminate if gccxml fails
- Fixed Bug [#5253]
Remove "using namespace seal::reflex;" from dictionary source.
- Fixed Bug [#5254]
OffsetOf macro confused by multiple template arguments.
- SealCLHEP:
- Adaptation of dictionary to version 1.9.1.1
- Scripting:
- PyLCGDict2
- The treatment of NULL pointers has been revised, in order to bring
together the two highly differing treatments provided by PyLCGDict1
and the previous versions of PyLCGDict2. A new NullPointer metatype
has been introduced. NULL pointers of type T* are exposed by PyLCGDict2
as instances of the type NullPointer(T), which prevents the user from
using the instance in situations which are guaranteed to result in segfaults.
When the pointer is readjusted to point to a valid address, its type
can be promoted to Pointer(T). Instances of NullPointer(T) are false
in boolean contexts.
- Fixed Bug in task [#1209]:
Find the cause of the segfault on Mac OS X
- External Libraries
sockets 1.0
uuid 1.32
gccxml 0.6.0_patch1
boost 1.31.0
clhep 1.9.1.1
gsl 1.4
python 2.3.4
root 3.10.02 (4.01.02)
cppunit 1.8.0
oval 3.5.1
valgrind 2.0.0
qmtest 2.2.1
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.4.0 (1.5.0)
This release is major version of SEAL and introduces new functionality in
addition to a number of bug fixes and changes in the external packages versions.
It is based on the LCG_26 configuration. ( 1.5.0
with ROOT version 4.00.08 LCG_27 )
The highlights of this release are: a new simpler use of the plug-in
manager, the consolidation of the SEAL component model by introducing ways of
wrapping existing classes, a new re-implementation of PyLCGDict to overcome some
of the deficiencies of the old one, and a new MathLibs package for fitting
framework and the completion of Minuit.
The changes in detail:
- Foundation: All classes have had the "API" definition
removed. On Windows the build system is now assumed to
automatically generate the export definitions for functions.
Global data, including class-static data, is now the only
element that carries the API definition in the source.
- PluginManager has been simplified and has more
tests. The PluginFactory type no longer
requires a separate info object, but is given simply a
prototype for the factory methods. See the how-to
guides for more details. There is also a new utility
SealPluginRefresh which updates the plug-in
cache and prints information about what it loads,
but does not dump the catalogue at the end. Bugs
in leaving cache files open after they were read
have been fixed.
- SealBase has had a number of interface changes
while the classes are still in relatively little use.
Most existing clients will not need to be changed, or
the changes are very limited. For a transition period,
some backward support is available by defining
SEAL_DEPRECATED macro. The changes are:
- All hacks around missing "using" removed.
- IOSize, IOOffset types have been corrected.
- More consistent use of IOSize and IOOffset.
- Large file support is now unconditionally enabled
on Linux (the SEAL API always supported it).
- IOInput and IOOutput read/write overloads have
been changed as they were inconvenient and
made subclass writing dangerous. In particular,
from now on the main method to override in
subclasses is read(void *, IOSize) (was
read(IOBuffer)) or write(const void *, IOSize)
(was write(IOBuffer)). The methods to read and
write to multiple buffers in one go now have a
different name: readv() and writev(). All this
is now better documented in the classes.
- File now provides control over "auto-close"
behaviour.
- PipeCmd is now implemented through SubProcess
to reduce duplication.
- The Time and TimeSpan class interfaces have been
improved. They no longer convert implicitly to
scalar integer type; use a new method ns() to
obtain the nanosecond value. Many basic arithmetic
and boolean operations have been implemented to
counter this. The month() method now returns a
value based on zero, not one, for compatibility
with the constructor arguments. TimeSpan header
file has been removed, both Time and TimeSpan
are now defined in SealBase/Time.h.
- Most constants embedded in classes have now moved
to an associated namespace. This affects Time,
TimeSpan (TimeConst); File, IOChannel, PipeCmd
(IOFlags); SystemError (SysErr); Socket,
LocalSocket, LocalServerSocket, InetSocket,
InetServerSocket (SocketConst).
- ProcessInfo now provides access to program's
argc/argv if available, as well as utilities
to get the program's full and short name.
- CommandLine has been removed.
- Filename and StringFormat now have a named
function to obtain their values in addition to
conversion operator.
- SharedLibrary::symname() adjusted for OS X.
- SealIOTools follows SealBase I/O-related cleanups
and Time changes. The classes now use IOSize and
IOOffset much more consistently. These changes should
have little or no impact on clients.
- SealZip similarly follows SealBase changes.
CPIO archive handling improved. Zip archive handlers
have even more internal validation. ZipArchive has a
new virtual function to open SubStorage for stored
members so subclasses can provide their own custom
object. The changes should have little impact on
clients.
- SealTest now prints exception details on failure.
- SealPlatform updated.
- SealUtil added a new chrono timer, SealHRRTChrono, with very high resolution (1 clock tick) and low latency (80-100 clock ticks). The timer is based on TimeInfo::realNsecs().
- MathLibs contains various new developments in Minuit and a new package,
a fitting and minimization framework library using Minuit. MathLibs builds now also on Windows.
- Minuit contains various changes with respect to the previous release. More information can be found
here,
where release notes for Minuit_1_4_0_xxx, are described in detail. In brief, these changes include :
- a general clean up of interfaces and user API, new allocator (StackAllocator) for speeding up which can be optionally used,
- a new class MnStrategy for controlling minimization quality
- MnContour for producing contours around the minimum
- added Simplex and Scan and MnMinimize which combines Migrad and Simplex
- added single side limit
- replace BLAS/LAPACK Fortran routine with Minuit cpp files.
- FML is a new package containing a library for solving complex and customized fitting and minimization
problems. It contains a generic minimization interface and it must be used (linked) together with at least one
package (e.g. FMLMinuit) which implements the minimizer interface.
Fittig based on the Chi2 and Maximum likelihood (binned and unbinned) methods is supported.
The corresponding objective functions are built automatically using the input data and the user
provided model function. Minimizer engine and fitting methods can be changed at run time.
Users can control fitting parameters (fixing, setting bounds, etc...) and minimizer parameters
(max number of iterations, tolerance, etc..)
- FMLMinuit is a package implementing the FML minimizer interface using the seal Minuit library.
Minimizer based on MnMinimize (Migrad + Simplex), Migrad or Simplex are implemented.
- Framework has been adapted to the new PluginManager
- SealServices
- Added the DictionaryService to return the Reflection Class by loading
dynamically the dictionary library if needed
- PropertyCompiler now supports component names having slashes in
them, e.g. "SEAL/Services/MessageService". Component names must not contain
spaces in their names, e.g. "Message Service" is now MessageService. The
change is required by the current PropertyCompiler in order to support
multi-level context settings
- ConfigurationService is the first component loaded by
Application class to ensure that all other
components get their properties (if any) set as required.
- Fixed [Bug #2187] MessageService problems...
- SealKernel
- Application class has been migrated to Framework/SealServices
package
- Context now supports recursive queries up to the top level, this
had used to perform only local component lookups before
- Context has changed destruction policy and now destroys all the child
contexts when it ceases to exist
- The new class ComponentWrapper has been introduced which allows to
install arbitrary user defined class as a SEAL component. The object becomes
integrated into the hierarchy of SEAL components but its lifetime is under the
responsibility of the client which installed his/her object this way.
- Dictionary
- lcgdict command :
- New option -c, --capabilities=FILE of lcgdict command to
generate the FILE with a function that provides to the SEAL
PluginManager the list of "capabilities" of the dictionary library (list
of classes for which the dictionary is provided). With that the
dictionary library can be loaded dynamically when the class dictionary
is required. Include FILE in the list of source files for the library
and build register the library as
a SEAL module. There is currently no protection against concurrent
modifications to FILE, so parallel builds need to use manual locking
(see lockfile(1) for instance).
- Scripting
- PyLCGDict a number of maintenance actions and bug fixes:
- Fixed BUG that affected reading POOL data in LHCb. The dictionary
entry for std::basic_string is only created if not already existing.
- Fixed
[Bug #3137] IndexError: tuple index out of range when using
PyLCGDict
- Fixed [Bug
#3362] impossible to give null pointers as arguments while using
PyLCGDict
- Adaptation needed for Boost 1.31.0.
- Fixed BUG for argument type 'char'. It was getting the first
character if passed a string of length longer than 1.
- Corrected the returned dynamic type. The object was not cast to the
correct type.
- Support for returning unknown types (to the LCG dictionary) by
pointer or reference. They are usable as arguments to other
function/method calls.
- Support for "void*" as argument type. Any pointer type will be
passed as is.
- PyLCGDict2 is the new implementation of
PyLCGDict. While PyLCGDict2's natural user interface differs
from that of PyLCGDict1, it aims to run PyLCGDict1 programs
without modification, when running in backwards compatibility
mode. PyLCGDict2 is expected to fully replace PyLCGDict1 in a
future release. From the user interface perspective,
PyLCGDict2 differs most significantly from its predecessor in
terms of its treatment of pointers: it acknowledges that they
exist.
- PyROOT: The package has been removed in 1.5.0 since it is now part of ROOT
4
- External Libraries
sockets 1.0
uuid 1.32
gccxml 0.6.0_patch1
boost 1.31.0
clhep 1.8.1.0
gsl 1.4
python 2.3.4
root 3.10.02
cppunit 1.8.0
oval 3.5.1
valgrind 2.0.0
qmtest 2.0.3
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.3.4
This release is a bug fix release. It is still based on the LCG_23 configuration.
- Foundation:
- SealBase/SharedLibrary is back to not calling dlerror() before an error
is reported. Hence, it should no longer crash if there was no error,
but may now crash again on error, and is likely to produce a garbled
error message. Fixes [Bug
#2717].
- SealBase/SealUtil - removed dependency on the boost_thread library and use now SealBase/Time. Added a new chrono timer for real time measurements with very low latency and highest resolution available on the system. It is based on SealBase/TimeInfo::realNsecs()
.
- Dictionary:
- Fixed [Bug] Transient attributes can not be set using a pattern
specification in selection file
- lcgdict command generates "seal capabilities" with the list
of available classes for each dictionary library in preparation for the
dictionary service
- Adapted to support new version of gccxml (0.6.0)
- Fixed [Bug
#2813] seal::reflect::Class gives bad component type for vector<const
T*>
- Fixed [Bug
#2842] reflect::Class::fields() modifies Field objects belonging to base
classes
- Scripting (PyLCGDict):
- Fixed [Bug] Inconsistency between treatment of std::string between POOL
and PyLCGDict. The later was considering it a primitive type.
- Fixed [Bug
#2239] Invalid python identity on templated classes. The correct
pythonized class name is look in namespace before creating a new one
- Fixed [Bug] Distinguish between the '*' multiplication operator and the
'*' dereference operator (based on the number of arguments)
- Fixed [Bug] Memory leak when destroying python proxies
- Improve the handling of template parameters to form a valid C++ name.
Spaces at the end of last argument ending with '>' is not needed. Python type
str is translated to std::basic_string<char>
- Added support for lists (iterator protocol) and maps if the corresponding
iterators are found in the dictionary.
SEAL 1.3.3
This release is basically a bug fix release. It is based on the LCG_23 configuration
(ROOT 3.10.02). Both optimized and debug versions are for rh73_gcc32, and
win32_vc71 platforms. The Windows build is using CMT and the interface packages in LCGCMT/LCGCMT_23
- Foundation:
- SealBase adds some internal OS X-specific bug fixes.
- SealIOTools adds a new class SubStorage.
- SealZip's ZipArchive now sports a new member "openStorage" that
allows archive members to be opened as Storage objects. There is
also a new test to read contents of archives via std::istream.
- Scripting (PyLCGDict)
- Introduced global name space scope (named 'globalscope') to allow
attachment of global classes and templates.
- Added special argument converter for arguments of type PyObject* to pass
it directly.
- Dictionary(SealCLHEP)
- Extended the number of CLHEP classes for which the dictionaries are
generated
SEAL 1.3.2
This release is basically a bug fix release. It is built with the SCRAM version V0_20_0
and is based on the LCG_22 configuration. Both optimized
and debug versions are for rh73_gcc32, and win32_vc71 platforms. The
source directory in the build area has been changed to /src instead of
/seal. The Windows build is using CMT and the interface packages in LCGCMT/LCGCMT_22
- Foundation:
- Fixed [
Bug #1905 ] dlerror problem when attaching plugin module...
- Fixed [
Bug #1996 ] Plugin manager crash if one of the path in SEAL_PLUGINS
doesn't exist
- Scripting:
- PyROOT
: Added support for void*- PyBus: Added new package
- Dictionary:
- Optimization in resolving pending classes. Changed from being done for
each new class to each new dictionary generated file.
SEAL 1.3.1
bug-fix release for Minuit used within ORCA; otherwise identical code as SEAL_1_3_0 except for adding Foundation/PluginCaps which was forgotten in SEAL_1_3_0;
SEAL 1.3.0
This release improves stability and test fixes in SEAL packages for the ICC 7.1
and Visual C++ 7.1 compilers. There are also some improvements to the plug-in
manager for all platforms. The release is built with the SCRAM version V0_20_0
and is based on the LCG_21 configuration. Both optimized
and debug versions are for rh73_gcc32, optimized for rh73_icc71 and win32_vc71 platforms.
- Foundation:
- The plug-in manager now directly supports capabilities. See the new
PluginCapabilities class.
- The plug-in manager now supports a separate entry point for registering
capabilities. Both the standard entry point (DEFINE_SEAL_MODULE()), or the
new one (SEAL_CAPABILITIES) can be defined in the same module. One can also
define just one of them. This allows basic features to be advertised to the
manager without linking against the plug-in manager itself. This means that
a library that already registers to some outside factory at load time, or has
other desirable load-time side effects, can be advertised through the plug-in
catalog without linking it to the plug-in manager itself. Anything requiring
a factory of course still needs to link against that factory, be that from the
plug-in factory or some other package.
- New utilities to validate plug-in modules: SealModuleSymCheck and
SealModuleLoadCheck. These make sure a module library is valid, i.e.
has no unresolved symbols and actually loads. All projects should incorporate
a run of these tools while building modules, before a module is registered.
See SEAL's config/module.mk for an example on how to make such a check.
- The plug-in manager can be told to not unload any libraries ever by setting
the SEAL_KEEP_MODULES environment variable to any value. Doing so can
help on certain platforms (e.g. SuSE Linux), and with module libraries that
don't like to be unloaded. However do note that setting the flag may cause
contention between modules that never expect to be loaded at the same time,
such as two libraries competing over a single symbol, factory registration or
some other global resource. (This is never a problem with the plug-in manager
factories, but may occur with external code.)
- Attempts to work around breakage in linux dynamic loader, hopefully resulting
in better error messages whenever there are problems with dynamically loaded
libraries.
- Plug-in manager cache didn't encode/decode all special characters correctly.
This should now be fixed. To avoid ghosts, regenerate all caches with the fixed
encoding.
- Fixed bugs in StripOps::split() when using regular expression separators.
- Environment "get()" syntax has been improved for easier use. The old
syntax is still valid, however it is no longer virtual so derived classes
need to be changed to override a different "get()" method. The Environment
now also implements a default "has()" method that uses "get()" to determine
if the variable is set. ShellEnvironment was changed to conform.
- Fixed: [
Bug #1511 ] PluginManager does not like SEAL_PLUGINS starting or ending
with a ":"
- Fixed: [
Bug #1740 ] icc build seem to not be working
- Framework:
- Fixed [
Bug #1743 ]
MessageStream problem with iostream manipulators with Linux icc 7.1
- Dictionary:
- Fixed [
Bug #1376 ] filling vector is inefficient
- Fixed [
Bug #1808 ] --pool generates too many constructors
- Added new option --split in lcgdict command to generate the stubs
functions in a separate file
- Fixed [
Bug #1868 ] Handling of private copy constructors
- Fixed [
Bug #1869 ] Class defining operator new()
- Size of dictionaries reduced by more than a factor 2 by changing
std::string to char* in calling signatures
- New lcgdict options:
- Added new --split option to separate the function stubs from the rest.
This should overcome
the problem with Windows for private/protected functions
- New tags <selection/> and <exclusion/> in selection files to
select/exclude classes, fields or methods from the
generated output. The default is <selection/>
- Mathlibs:
- improved line search and small change in the update of the covariance matrix
- added Minuit/tests/MnTutorial with two additional tests to the distribution
- modified VariableMetricMinimizer interface to allow for user gradient and initial
covariance matrix (not possible via MnMigrad yet, however);
see example in Minuit/tests/MnTutorial/Quad1FMain.cpp
- Paul Kunz added Doxygen support in Minuit/doc
- minor redesign and clean-up:
- remove unused files and unnecessary base classes
- change in class names: VM* becomes VariableMetric*, e.g. VMFunctionMinimizer is now VariableMetricMinimizer
- changed name of FunctionDerivative to GradientCalculator
- MnMigrad now keeps the minimum as data member, user gets a const ref to it
- Fixed: [
Bug #1818 ] Minuit/tests/MnSim/BuildFile missing architecture for
rh73_icc71_dbg
- Scripting:
- PyROOT
- further code optimizations by stripping the ROOT layer and
interfacing more directly to CINT. A few small fixes.
- PyLCGDict
- Introduced some optimizations (no new fuctionality) to speed up the
execution
- Known problems and issues
- Due to problems with ICC 7.1 compiler (see bellow) the following have not
been released on rh73_icc71 platform:
- Framework/SealKernel/tests/Benchmark (needs fix for hash_map)
- Scripting/PyROOT (BOOST problem)
- ICC issues:
- BOOST::Python and BOOST installation in general does not work
very well on rh73_icc71 platform. There is
confirmed problem in Boost::Python code which has
been fixed in the mean time in BOOST::Python CVS
and requires update in external software area.
- There is missing C++ ABI header in ICC 7.1 installation
which should be fixed by SPI by ICC 7.1 proper re-installation.
- Windows issues:
- MathsLibs are not yet built for Windows.
- Test executables and libraries are built in /bin and /lib instead of
/test/bin and /test/lib
- External Libraries
sockets 1.0
uuid 1.32
gccxml 0.4.2_patch1
boost 1.30.2
clhep 1.8.1.0
gsl 1.4
python 2.2.2
root 3.10.01
cppunit 1.8.0
oval 3.4.1
valgrind 1.9.6
qmtest 2.0.3
zlib 1.1.4
bz2lib 1.0.2
pcre 4.4
SEAL 1.2.0
The main highlight in this release is to provide binary versions of the
SEAL packages for the ICC 7.1 and VisualC++ 7.1 compilers in addition to the usual binaries for gcc
3.2. Additional small changes (bug fixes) but no new major functionality
is provided. The release is built with the new version of scram V0_20_0 and is
based on the LCG_20
configuration.
- Foundation:
- Small modifications necessary for porting the code to ICC and VisualC++
- Math Libraries (Minuit):
- Limited parameters are now available (see example in Minuit/tests/MnSim/MigradGaussSim.C).
- Extend the FunctionMinimum interface: returns MnUserParameters (transform the internal state representation into the user-defined external parameters).
- Define "ostream& operator<<" for MnUserParameters for easy print-out (printed by default when the FunctionMinimum is printed).
- accessing the result of the minimization (parameters, errors) should be now more obvious and easier (than going via the internal state and accessing the state-vector and the covariance matrix).
- Component Model:
- Dictionary:
- The generation of the class entries for each dictionary library has been simplified. This will also ease the integration
with the Plugin Manager.
- Small adaptions for ICC compliance
- Fixed [
Bug #1581] no error issue if class declaration not found
- Scripting:
- PyROOT. Several small improvements and speed optimizations. A
factor 2.5 improvement has been measured for the filling histograms
example (hsimple.py).
- External Libraries
sockets 1.0
uuid 1.32
gccxml 0.4.2_patch1
boost 1.30.2
clhep 1.8.0.2
gsl 1.4
python 2.2.2
root 3.10.01
cppunit 1.8.0
oval 3.2.0
valgrind 1.0.4
qmtest 2.0.3
zlib 1.1.4
bz2lib 1.0.2
pcre 4.2
SEAL 1.1.0
This SEAL release brings fresh updates, improvements and bug
fixes of the SEAL 1.1.0 major release. It uses
LCG_17 SCRAM toolbox configuration and SCRAM version V0_19_9.
Highlights in this release include improvements in support for
Cygwin and MacOS X platforms, improvements in PluginManager code and
other classes of Foundation subsystem. All it comes also with
improvements and fixes in the young Framework subsystem. We also let
go away some deprecated files like Kernel.h and we replaced it with
equivalent stuff from Foundation/SealBase. There are still some
issues to be solved, the work is in progress, see
Known issues bellow.
-
Foundation:
- Improvements to the plug-in manager. PluginManager
can now be safely initialised several times; only the
first call counts. PluginFactory has been split in two
such that a number of potential issues can be avoided.
Template usage was simplified for the benefit of MSVC++
and the static "s_instance" members are now gone. This
should remove any remaining issues with template data
unification across shared libraries and uses fewer
static methods. However classes derived from
PluginFactory must now have a static method "get()" to
fetch the instance of the factory (a static method was
already required, it's name is now fixed to be "get()").
This should be the only significant interface change.
The PluginManager class now also has a feedback hook
mechanism by which clients can be informed about the
plug-in management. Both error situations and pure
status updates are fed back. More class reference
documentation.
- Various bug fixes and Mac OS X improvements in
SealPlatform and SealBase. Changes to SharedLibrary,
DebugAids, Signal, FileNameLock and SearchPath.
Interfaces are backwards compatible at source level.
- Bug fixes to the SealIOTools and SealZip streamers.
No interface changes.
- All tests converted to CppUnit and should work under
qmtest.
-
Framework:
- Does not depend on old Kernel.h anymore
- Changed the namespace name and enum constants' names
to avoid possible clash with C/C++ macros which use to
be defined as fully CAPITALIZED names. This is to
resolve the
Bug #1291.
Beware! It affects your code!
- Added generic get() getter method into
PropertyBase class. Has to be revisited. For the
use-case, see the Framework/SealServices/example code
for SimpleFileReporter class( not in the release, see
Known issues ).
Added more specializations of templated valueFromStream
and valueAsStream and "std::ostream <"
- Added removeProperty method to enable to unregister
a property from property manager in situations as for
example destructors. Added callback argument into
declareProperty() method.
- Added configuration filename handling & diagnostics.
ConfigurationService now checks if the file exists or if
it is not specified at all and warns about that. If that
happens no attempt is made to read & set properties so
all the properties are left with their default values.
- Some fixes on severity filtering at the level of
MessageStream and MessageService.
- Fixed [
Bug #1398 ] I cannot compile a simple program that
includes SealKernel/IMessageService.h
-
Dictionary:
- addField, addMethod, addSuperClass now return a
ClasBuilder& (before void). Generating a Dictionary may
now be done with concatenation of functioncalls. (e.g.
ClassBuilder(...).addFunction(...).addMethod(...).build()
)
- Fixed [
Bug #1229 ] lcgdict cannot generate dictionary for
an enum
- Fixed [
Bug #1185 ] can I specify full output file name for
lcgdict?
-
Scripting/PyROOT:
- Added CTypePtr to support C-style arrays
- Small mods to make execution of demo's easier
-
MathLibs/Minuit:
- Adding tutorial documentation and implement one
example of a test function ("Quadratic function in four
parameters") in Minuit/tests/MnTutorial; CppUnit-ize and Oval-ize
tutorial example;
-
Known Issues:
- There is a problem to re-load the same component
more than once in cases where the component declares a
property. The problem has been found during development
of component example, so the example has not been
released yet due to this problem.
- There is the issue of
Bug #1331 the solution requires deeper understanding
of the problem.
- External Libraries
gcc3 3.2
g77gcc3 3.2
sockets 1.0
uuid 1.32
gccxml 0.4.2_patch1
boost 1.30.2
clhep 1.8.0.2
gsl 1.3
python 2.2.2
root 3.05.07a
cppunit 1.8.0
oval 2.15.3
valgrind 1.0.4
qmtest 2.0.3
zlib 1.1.4
bz2lib 1.0.2
pcre 4.2
SEAL 0.3.4
- New release with code identical to 0.3.3 but with a new configuration, LCG_14 (main change is new version of root, 3.05.07). This release has been built in two different compiler options, one with an optimized version and one other with a debug version for the gcc 3.2 compiler. Libraries are built with prefix "lcg_" in front.
SEAL 1.0.0
SEAL release ready to be used by experiments frameworks, based on
LCG_12 configuration.
Same platform support (rh73_gcc32, rh73_gcc32_dbg) as in previous releases
Highlights of this release are the first design and the first implementations
of the SEAL component model. The Framework sub-system is populated with two new
packages (SealKernel, SealServices) containing the basic base classes and
services for the model. There have been improvements in the Dictionary
reflection packages and two new packages providing dictionaries for standard
libraries (SealSTLDict, SealCLHEPDict and SealDict) have been added. In the
Scripting area the Python bindings for LCG dictionaries has been produced.
Configuration has been further improve and new version of external
tools have been adopted. The library names have been prefixed with "libclcg_"
to avoid clashes with existing libraries. Many more [unit]tests have been added. Improved doxygen-generated documentation.
- Foundation:
Some modifications have been applied to various classes to have them compiling on Windows (MVSC++).SealBase contains a new class, CommandLine, to obtain command line arguments. A bug fix has also been applied to Regexp.
- MathLibs:
Minuit:
- API: adding user interfaces for parameters, migrad, minos
- design: separate user parameters and user function, including change of function interface (FCN) to a minimal required interface
- fixing/releasing of user parameters is now supported
- the number of calls to the user function is counted
- two examples added in Minuit/tests/MnSim: MigradGaussSim.cpp, MinosGaussSim.cpp
- Dictionary:
The LCGDict script for generating the dictionary sources issues some new
warnings. Some minor bug fixes and improvements were applied to Reflection and
ReflectionBuilder. The tests of CMSExamples were 'ovalized'. New packages
were introduced:
- SealCLHEP contains the dictionary information of the Random and
Vector subsystems of CLHEP. More dictionaries will be compiled and released
as soon as they are requested.
- SealDict contains the dictionary information of the Reflection
package. This is very useful e.g. for working with the dictionary
information and the python binding.
- SealSTL contains the dictionaries for std::string and some
instantiations of fundamental types for std::vector<T> and std::list<T>. If
dictionaries for other stl-containers are needed they will be produced.
- Framework
The SEAL "component model" has been introduced in this
version. The details of this model can change based on feedback from experts
and experiment developers. The Framework aware classes are located in the
package SealKernel (this package was originally in the Foundation
sub-system). The component model uses the plug-in management to achieve
dynamic loading of components. See the
howto to more information about the development and usage of components.
- Scripting Services
-
A Python binding to the LCG Dictionary has been
introduced. It allows the user to interact with any
C++ class for which the LCG Dictionary
has been generated. With this module, there is no need
to generate specialized Python bindings or wrapper
code to interact with C++ classes. See the howto for
more information about its usage.
-
A test suite for PyROOT has been started. So far only a
bare minimumn test is present, whose purpose is merely to
confirm that the package has built correctly and is
usable. As the package itself is still quite young, there
are a few known flaws which need to be ironed out; these
are not, as yet, addressed in the tests.
- External Libraries
gcc3 3.2
g77gcc3 3.2
sockets 1.0
uuid 1.32
gccxml 0.4.2_patch1
boost 1.30.0
clhep 1.8.0.0
gsl 1.3
python 2.2.2
root 3.05.06
cppunit 1.8.0
oval 2.15.3
valgrind 1.0.4
zlib 1.1.4
bz2lib 1.0.2
pcre 4.2
SEAL 0.3.3
- New release with code identical to 0.3.2 but with a new configuration, LCG_12 (main change is new version of root, 3.05.06). This release has been built in two different compiler options, one with an optimized version and one other with a debug version for the gcc 3.2 compiler.
SEAL 0.3.2
- New release with code identical to 0.3.1 but with a new configuration, LCG_10 (main change is new version of root, 3.05.05). This release has been built for the first time, in two different compiler options, one with an optimized version and one other with a debug version for the gcc 3.2 compiler.
SEAL 0.3.1
- Bug fix release, with changes only in the Dictionary for POOL use. Same configuration and same platform support as in 0.3.0
SEAL 0.3.0
- Another SEAL release for POOL and PI use, based on LCG_09 configuration.
Same platform support (rh73_gcc32) as in previous releases
- Highlights of this release are improvements in the Dictionary,
PluginManager and MathLibs and addition of new packages
(SealBase, SealIOTools and SealZip) in Foundation containing classes
migrating from classlib.
- Configuration has been further improved but apart from new external
tools required and better conformance to SPI layouts, there should not
be any changes with external impact, the changes merely support SEAL
developers better. Makefile fragments have been cleaned up and several
improvements have been added. All obsolete files have been removed. The
installation directory structure now conforms to all current SPI layout
conventions. More flexible test program support; test programs are no
longer rebuilt or moved around unnecessarily. A number of new external
tools have been added. Improved doxygen-generated documentation.
- Foundation
- PluginManager: Now always rebuilds the ".cache" even if
there are bad modules. Corrupt registrations and unloadable
modules are marked bad in the cache not checked again until the
registration is updated. The interface for "DEFINE_SEAL_PLUGIN"
has changed; it now takes the registration name as an argument.
Another macro "DEFINE_SEAL_PLUGIN_DEFAULT_NAME" uses stringified
type name as the registration name, and takes the current two
arguments. The "T::catalogLabel()" is not used any more, that
was an unfortunate bug introduced in migration from IGUANA.
- PluginDumper: Provides new program "SealPluginDump" (in
SEAL bin directory) to dump the contents of the plug-in catalog.
Client projects are welcome to use this program to rebuild their
module caches before freezing the release, or as the name implies,
to list what is available.
- SealPlatform, SealBase, SealIOTools, SealZip: New core
foundation classes. This is still largely work in progress, and
while testing is in progress and a good section of the code is
reliable, not much is currently "officially" guaranteed. More
complete test coverage will occur by June release. Constructive
feedback on the interfaces and functionality would be welcome.
(See also the utilities table.)
- SealUtil: Deprecated. Most of the classes have been
replaced by classes in SealBase; the rest of this package
will be removed in the next release.
- SealKernel: Deprecated. Foundation classes in this package
are replaced by classes in SealBase. Service classes will
be moved to a new package in a new Framework subsystem.
- Dictionary:
- A transient-modifier was introduced to the Reflection. It is now
possible to tag transient data-members for POOL. Modifiers for other
items are now generated by the Dictionarygenerator.
- New container-types (pair, multimap, multiset, hashmap, hashset)
were introduced. The Class-functions isArray, isVector etc. for the
stl-containers were removed. A new function Class::getContainerType
returns an enum representing the container-type of the class.
- PropertyList now accepts not only accepts strings as values but
every kind of object that can be casted into void*. Lifetime is
checked all these types except pointers which are meant to be
controlled from outside the Reflection.
- MathLibs:
- Minuit is now independent from any external package, eliminating
the dependency on a linear algebra package. The necessary routines for
lin.alg. were copied from blas/lapack. Two new tests are available in
tests/MnSim (SimpleGaussSim and GaussHistoData) which simulate Gaussian
distributed data and reconstructs the mean values and sigmas.
GaussHistoData does this for n random Gaussians and fills a ROOT ntuple
with relevant data (chi2, pulls, etc.)
- F77MnInterface package was moved to Minuit/tests together with the
Minos and Migrad prototypes.
- Imports: This subsystem is no longer released; classlib
functionality has been migrated to Foundation (see above) or is
available from Boost. (See the utilities
table for more details.)
SEAL 0.2.1
- SEAL technical release to use new SCRAM version V0_19_8 and LCG_07
configuration. The source top directory has been renamed to "/seal".
- Couple
of small bugs corrected in DictionaryGenerator package.
- Fix to Imports/classlib
map iterator plus corresponding changes in Foundation/SealUtil.
- Known
problem with a clash of library name libMinuit.so (see
bug 531)
SEAL 0.2.0
- Another SEAL pre-release for POOL use, using LCG_06 configuration. SCRAM
and platform support is unchanged: V0_19_7 and rh73_gcc32, respectively.
- The highlights of this release are: initial version of the base
plug-in manager (but not yet the application level); beginnings
of various foundation classes; first preliminary release of MathLibs,
containing prototypes for the Minuit- Migrad and Minos functionality;
consistency checking and STL handling improvements in reflection;
and initial python interface to ROOT.
- There have been numerous changes to the configuration, mostly to
to conform to the evolving LCG conventions. Tests are installed
in a new location and we support both oval and cppunit tests.
Include files installation as agreed. Various smaller changes.
- Documentation/WebSite: Updated. The whole web site,
including Doxygen documentation, is now hourly regenerated.
- Foundation: Introduction of PluginManager. New
package SealUtil, an initial set of classes from classlib
favoring the ones used by PluginManager, plus time and timer
classes. SealKernel had Exception class changed to strict
copy semantics: throw/catch now happens by value, not by pointer.
- Dictionary:
- Reflection model has a new consistency-check and a method
to print out the list of unresolved types. Clients can now
add/set item properties at runtime.
- The Dictionary generation has been adapted to new requests
from POOL concerning support for STL containers. The
generated names for STL classes do not include the default
template arguments.
- MathLibs:
- This release of MathLibs contains two executable prototypes of the
Minuit toolkit, Migrad and Minos (see MathLibs/Minuit/tests). The
numerical results of the two prototypes were compared to the
Fortran version of Minuit based on one example (dsdq.F), being
compatible within the errors. There was no systematic testing
done, neither for numerical accuracy nor performance. The aim
of these prototypes is to get an overall view of the required
functionality, as well as feedback on the C++ API.
- The linear algebra calculations of the prototypes are based on a
wrapper around GSL (MathLibs/GSLAlgebra). The wrapper is not
complete but restricted to Minuit needs. However, timing
comparisons (MathLibs/GSLAlgebra/tests) show that the introduced
overhead is less than 1% w.r. to calling native GSL functions
directly, using a method described in Stroustrup 3rd edition 22.4.7.
- Scripting: Introduced new package PyROOT. Python interface
to ROOT classes (former RootPyhton package from Gaudi). Some ROOT
translated to Python demos are available to demonstrate the usability.
SEAL 0.1.1
- Another SEAL pre-release for POOL use, using LCG_02 configuration
and SCRAM V0_19_7. Only one platform is current supported: RedHat 7.3
with GCC 3.2. The highlights of this release are improved project
configuration, improvements in the dictionary implementation and
better tools for generating the dictionary.
- The SEAL configuration has been revamped. We now have preliminary
framework for building tests and preliminary support for running them.
Top-level build targets have been added for release phases and for
rebuilding all SEAL documentation from the repository.
- The Dictionary/DictionaryGenerator package now makes it easier to
generate dictionaries. It can add rules to build the dictionary
automatically to packages using it. Please refer to the separate
documentation on how to best integrate this into the client projects.
- The dictionary generator itself (lcgdict) is now installed in the
SEAL bin directory. The tool itself has been improved to allow
deep dictionary generator and has improved selection support.
- Dictionary/Reflection has had some minor cleanups, bugfixes (accessing
methods now returns all overloaded methods; C array meta class info)
plus now provides a new function to get C++ method signatures.
- Dictionary/ReflectionBuilder is no longer constructed in initialisation
phase since it is not a primitive type. Future releases will include
sample std::string dictionary.
- The dictionary subsystem now has many new tests. These have been
verified for these release and produce expected results apart from
one exception: containers whose iterators don't return reference
to actual container storage appear to mishandled; an example of
such a type is std::vector<bool>.
SEAL 0.1.0
- First SEAL pre-release for POOL use. (FIXME: Notes to be completed!)