Release Notes¶
These notes are intended to serve as a guide to the user-visible features in a particular art suite release. As such, only versions included in art suite releases, or those with substantive changes, are included.
fhicl-cpp 4.12.02 (2020/08/28)¶
- art suites: 3.06.03
- critic suites: 2.04.03, 2.05.00, 2.05.01, 2.05.02
- gallery suites: 1.15.02, 1.16.00, 1.16.01, 1.16.02
This version corrects some typographical errors in the program options of some helper executables.
fhicl-cpp 4.12.01 (2020/07/24)¶
This version correctly handles optional delegated parameters that are absent from the configuration (resolves bug #24659).
fhicl-cpp 4.12.00 (2020/07/07)¶
- art suites: 3.06.00, 3.06.01
- critic suites: 2.04.00, 2.04.01
- gallery suites: 1.15.00
- fhicl-py: 4.00.00
This version only supports SLF7. The e20
qualifier (GCC 9.3 with C++17 enabled) has been added. This version also includes the following FHiCL binding enhancements:
- A new fhicl-get executable, providing a command-line interface that mimics
fhicl::ParameterSet::get<T>
(resolves feature #23751). Type'fhicl-get -h'
for usage. - A new UPS package fhiclpy, which now supports the
fhicl
Python extension module (resolves issue #23648). - Conversion from FHiCL tables to arbitrary C++ types through the
fhicl::TableAs
facility (resolves feature #23669).
fhicl-cpp 4.11.02 (2020/11/13)¶
fhicl-cpp 4.11.01 (2020/03/02)¶
- art suites: 3.05.00, 3.05.01
- critic suites: 2.03.00, 2.03.01, 2.03.02
- gallery suites: 1.14.02, 1.14.02
fhicl-cpp 4.11.00 (2019/11/12)¶
This release only supports qualifiers e19
and c7
. In addition, Python 3 is now enabled by default. In order to use Python 2, one must specify the 'py2'
qualifier when setting up the fhiclcpp
UPS product.
fhicl-cpp 4.10.00 (2019/06/21)¶
- art suites: 3.03.00, 3.03.01
- critic suites: 2.01.00, 2.01.02, 2.01.03, 2.01.04
- gallery suites: 1.13.00, 1.13.01
fhicl-cpp 4.09.03 (2019/03/07)¶
- art suites: 3.02.03, 3.02.04, 3.02.05, 3.02.06
- critic suites: 2.00.03, 2.00.04, 2.00.05, 2.00.06, 2.00.07, 2.00.09, 2.00.10
- gallery suites: 1.12.03, 1.12.04, 1.12.06, 1.12.07
fhicl-cpp 4.09.02 (2019/03/05)¶
This version re-enables the fhicl
Python extension module for both Python 2 and 3 builds, using pybind11
.
fhicl-cpp 4.09.01 (2019/02/07)¶
fhicl-cpp 4.09.00 (2019/01/30)¶
This release is the first to support Python 3 builds. However, due to changes in the Python API, the fhicl
Python extension module is disabled for Python 3. It is re-enabled as of 4.09.02.
Breaking changes
All uses of boost::any
have been replaced with std::any
. Any users that have provided fhicl::detail::(encode|decode)
overloads should change their function signatures to use std::any
instead (with the '#include <any>'
header dependency).
fhicl-cpp 4.08.01, 2019/01/29 (art suite 3.01.01, art suite 3.01.02)¶
fhicl-cpp 4.08.00, 2018/09/25 (art suite 3.01.00)¶
- C++17 only
fhicl-cpp 4.07.00, 2018/06/05 (art suite 3.00.00)¶
fhicl-cpp 4.06.10, 2019/06/07 (art suite 2.13.00)¶
- C++17 only
fhicl-cpp 4.06.09, 2019/01/22 (art suite 2.12.00, art suite 2.12.01)¶
fhicl-cpp 4.06.08, 2018/05/04 (art suite 2.11.02, art suite 2.11.03, art suite 2.11.04, art suite 2.11.05)¶
- Encapsulating tables declared inline and inside of prologs are no longer propagated to the fully processed configuration (resolves issue #19773).
fhicl-cpp 4.06.07, 2018/03/30 (art suite 2.11.00, art suite 2.11.01)¶
- Support GCC 7.3 with C++17 enabled.
fhicl-cpp 4.06.06, 2018/03/16 (art suite 2.10.04)¶
fhicl-cpp 4.06.05, 2018/01/23 (art suite 2.10.01, art suite 2.10.02, art suite 2.10.03)¶
- Only update cetbuildtools version.
fhicl-cpp 4.06.04, 2018/01/22 (art suite 2.10.00)¶
- Changes to support Clang 5.0.1.
fhicl-cpp 4.06.03, 2017/11/07 (art suite 2.09.02, art suite 2.09.03, art suite 2.09.04, art suite 2.09.05, art suite 2.09.06)¶
fhicl-cpp 4.06.02, 2017/10/17 (art suite 2.09.00, art suite 2.09.01)¶
The fhiclcpp
types system has undergone some changes for ease of understanding and for better conceptual clarity with respect to the C++ standard template library:
- The
dtype
type alias has been replaced with the more explicitdefault_type
type alias for any templates that support default values. - The
rtype
type alias has been replaced with thevalue_type
type alias.
fhicl-cpp 4.06.01, 2017/08/30 (art suite 2.08.03, art suite 2.08.04)¶
fhicl-cpp 4.06.00, 2017/08/01 (art suite 2.08.00, art suite 2.08.01, art suite 2.08.02)¶
- The
AllowedConfiguration
andConfigurationTable
utilities (formerly of art) are now part of fhicl-cpp. - The deprecated
fhicl::parse_value
function has been removed. - Any
fhicl::(Optional)Table
objects that specify a conditional, must now specify an explicitMaybeUseFunction
(e.g.):
This requirement applies only toTable<Config> table{Name("some_table", Comment("Use only if condition X is true."), - [this]{...}}; + MaybeUseFunction([this]{...})};
fhicl::(Optional)Table
s and none of the otherfhicl-cpp
types.
fhicl-cpp 4.05.01, 2017/05/23 (art suite 2.07.01, art suite 2.07.02, art suite 2.07.03)¶
- Add FHiCL python module (supplied by Herb Greenlee of MicroBooNE) that allows users to access a FHiCL document as a native Python dictionary (e.g.):
Setting up theimport fhicl pset = fhicl.make_pset('my_document.fcl') fhicl.pretty(pset) # print dictionary
fhiclcpp
UPS product automatically updates thePYTHONPATH
environment variable so that thefhicl
Python module can be imported (resolves issue #10828).
- Make
fhicl::ParameterSet::walk
a public member function, where users can supply afhicl::ParameterSetWalker
object that can be used to traverse aParameterSet
object. - Adjust
fhicl::ParameterSetRegistry
implementation and interface to enable thread-safe access and insertion into it.
fhicl-cpp 4.04.00, 2017/03/07 (art suite 2.06.03)¶
- Allow
fhicl::Comment(std::string const&)
construction
fhicl-cpp 4.03.02, 2017/02/08 (art suite 2.06.01, art suite 2.06.02)¶
fhicl-cpp 4.03.01, 2017/02/07 (art suite 2.06.00)¶
- Add
SearchAllowedConfiguration
walker, enabling the traversal of afhicl::(Optional)Table<...>
to determine if it supports a specific key. (Actually included in tagged version 4.03.00, but that version is not used elsewhere.)
fhicl-cpp 4.02.00, 2016/10/19 (art suite 2.05.00, art suite 2.05.01)¶
- Improvements to
fhicl::Table<T>
printout. - Fixed memory leak due to missing virtual destructor.
- Removed deprecated
ParameterSet::get_(pset_)keys()
functions. - Minor bug fixes.
fhicl-cpp 4.01.00, 2016/09/14 (art suite 2.04.00, art suite 2.04.01)¶
- Add second template parameter to
fhicl::Table
, specifying a keys-to-ignorestruct
(see the documentation; resolves issue #11950). - Provide
fhicl::KeysToIgnore<T...>
template for concatenating multiplestruct
s that encapsulates keys to ignore during configuration validation.
fhicl-cpp 4.00.01, 2016/08/08 (art suite 2.02.02, art suite 2.03.00)¶
fhicl-cpp 4.00.00, 2016/08/02 (art suite 2.02.00, art suite 2.02.01)¶
- Allow multiple invocations of
@protect_ignore:
on same name (resolves feature #12877). This change is incorporated in version 4 of the FHiCL language. - Introduce the
(Optional)DelegatedParameter
class, allowing configuration validation to be deferred or suspended for the declared parameter (see here). - Improve diagnostic messages for parse errors encountered in prolog declarations (resolves feature #13363).
fhicl-cpp 3.20.01, 2016/06/07 (art suite 2.01.01, art suite 2.01.02)¶
fhicl-cpp 3.20.00, 2016/06/06 (art suite 2.01.00)¶
- Provide
operator<<
free function forfhicl::Table<T>
(resolves issue #12356). - Accommodate different parsing option for
artdaq
use cases.
fhicl-cpp 3.19.00, 2016/05/16 (art suite 2.00.01)¶
- Remove errant comma when calling
ParameterSet::to_indented_string
onParameterSet
s that contain nested sequences (resolves issues #12062 and #12434).
fhicl-cpp 3.18.02, 2016/01/27 (art suite 1.18.05)¶
- Remove inlining of
std::regex
calls (resolves issue #11485)
fhicl-cpp 3.18.01, 2016/01/11 (art suite 1.18.04)¶
- Fix treatment of conditional parameters that have default values.
fhicl-cpp 3.18.00, 2015/12/21 (art suite 1.18.03)¶
fhicl-cpp 3.13.01, 2015/12/08 (art suite 1.18.02)¶
- Remove erroneous
'template <>'
specifications incoding.h
.
fhicl-cpp 3.13.00, 2015/10/21 (art suite 1.18.00, art suite 1.18.01)¶
- Remove use of
cpp0x
.
fhicl-cpp 3.12.09, 2016/01/26 (art suite 1.17.07)¶
- Remove inlining of
std::regex
calls (resolves issue #11485)
fhicl-cpp 3.12.08, 2016/01/11 (art suite 1.17.06)¶
- Fix treatment of conditional parameters that have default values.
fhicl-cpp 3.12.07, 2015/12/14 (art suite 1.17.05)¶
- Remove erroneous
'template <>'
specifications incoding.h
.
- Enhancements to configuration validation and description:
- TupleAs template, which allows users to convert FHiCL sequences to nearly arbitrary C++ types (resolves issue #8962).
- Conditional configuration, where configuration parameters are expected only if the values of previously validated parameters satisfy some condition (resolves issue #9079).
The above additions to the configuration validation facility necessitated a few breaking changes:
- [ Breaking change ] The order of construction arguments is now constrained so that the
Comment
argument (if present), must precede the default value.
This is now true in general for all// e.g. Atom<T> explicit Atom(Name&&); explicit Atom(Name&&, Comment&&); explicit Atom(Name&&, Comment&&, std::function<bool()> maybeUse); explicit Atom(Name&&, T const& t); - explicit Atom(Name&&, T const& t, Comment&&); explicit Atom(Name&&, Comment&&, T const& t); explicit Atom(Name&&, Comment&&, std::function<bool()> maybeUse, T const& t);
fhiclcpp
types: the order of constructor arguments is not flexible.
- [ Breaking change ] The constructor signatures have changed for
fhicl::Sequence
andfhicl::Tuple
types that accept default values:
The corresponding changes exist also for objects constructed with a// Unbounded sequences - Sequence<int> nums { Name("nums"), Sequence<int>{1, 2, 3} }; + Sequence<int> nums { Name("nums"), std::vector<int>{1, 2, 3} }; Sequence<int> nums { Name("nums"), {1, 2, 3} }; // Bounded sequences - Sequence<double,3u> offset { Name("offset"), Sequence<double,3u>{1.4, 25., 1.3e-2} }; + Sequence<double,3u> offset { Name("offset"), std::array<double,3u>{1.4, 25., 1.3e-2} }; Sequence<double,3u> offset { Name("offset"), {1.4, 25., 1.3e-2}; // Heterogeneous sequences - Tuple<int,double> pair { Name("pair"), Tuple<int,double>{3, 4.5} }; + Tuple<int,double> pair { Name("pair"), std::tuple<int,double>{3, 4.5} }; Tuple<int,double> pair { Name("pair"), {3, 4.5} };
Comment&&
argument. Note that the brace-enclosed initializers are still accepted.
- [ Breaking change ] The
Sequence<T>::make_empty()
facility for unbounded sequences has been removed as it is no longer necessary:- Sequence<string> people { Name("people"), Sequence<string>::make_empty() }; + Sequence<string> people { Name("people"), std::vector<string>{} };
fhicl-cpp 3.12.06, 2015/10/21 (art suite 1.17.00, art suite 1.17.01, art suite 1.17.02, art suite 1.17.03, art suite 1.17.04)¶
fhicl-cpp 3.12.04, 2015/10/05 (art suite 1.16.02)¶
fhicl-cpp 3.12.03, 2015/09/29 (art suite 1.16.00, art suite 1.16.01)¶
- SQLite upgraded to 3.08.10.02.
fhicl-cpp 3.12.02, 2015/09/08¶
- Repair stale memory access when printing out
fhiclcpp::detail::validationException
message.
fhicl-cpp 3.12.00, 2015/09/03¶
- [ FHiCL validation ] Change function name
Table<T>::print_reference
toTable<T>::print_allowed_configuration
(including nestedfhicl::detail
function calls).
fhicl-cpp 3.11.00, 2015/08/26¶
- Incorporate
--parsable
program option intofhicl-dump
(see 3.10.00 release notes). - [ FHiCL validation ] Rename
fhicl::Key
tofhicl::Name
fhicl-cpp 3.10.00, 2015/08/25¶
- [ Breaking change ] The following function names have been changed
Resolves issue #9879. A warning/message will be emitted at compile-time if the deprecated name is used.- fhicl::ParameterSet::get_keys() - fhicl::ParameterSet::get_pset_keys() + fhicl::ParameterSet::get_names() + fhicl::ParameterSet::get_pset_names()
- The printout produced using
fhicl::ParameterSet::to_indented_string
has been adjusted into a format that is more maintainable. The following changes related toto_indented_string
have also been implemented:- The original default behavior has been restored--i.e. a call to
to_indented_string
with no arguments provided yields a printout with no annotations - There is now a
parsable
printout option, where any notations are placed on the line preceding a given FHiCL name assignment, not at the end of the line containing the assignment.
- The original default behavior has been restored--i.e. a call to
fhicl-cpp 3.09.00, 2015/08/18¶
- New helper application: The program
fhicl-dump
now exists so that users can view the final form of a FHiCL document, corresponding to the full processing of an input FHiCL file. To see the program options, typefhicl-dump --help
.
- [ FHiCL validation ] Change
Sequence<T>::empty()
toSequence<T>::make_empty()
.
fhicl-cpp 3.07.00, 2015/07/02¶
- [ Technology preview ] Validation and description features are now available for a user-provided FHiCL configuration. Implementing this feature introduces the concept of
fhicl-cpp
types, which include:fhicl::Atom<T>
fhicl::Sequence<T>
fhicl::Sequence<T,std::size_t>
fhicl::Tuple<T...>
fhicl::Table<T>
For information as to how to use this feature see this documentation.
- Individual sequence element access: Users may now retrieve individual sequence elements using
fhicl::ParameterSet::get
. Implementing this feature allows users to access values from arbitrarily complicated FHiCL structures. For example, consider the following FHiCL configuration:t: { s: [ u, { v: [w,x,y,z] } ] }
The character'y'
can be retrieved infhicl-cpp
through:
where thechar y = pset.get<char>("t.s[1].v[2]");
pset
object corresponds to the full document, which contains't'
.
fhicl-cpp 3.06.01, 2015/07/01 (art suite 1.15.00, art suite 1.15.01, art suite 1.15.02)¶
fhicl-cpp 3.06.00, 2015/06/30¶
- Implement issue #8655: append PROLOG definition.
This feature has been implemented by adding the concept of, "modified bindings." The only binding operator up to now has been:
-- binding a FHiCL value to a name. There are now two modified bindings,@protect_ignore:
and@protect_error:
. Important notes:- These are single symbols: no daylight is permitted between the initial
@
and the word, or between the word and the trailing:
. @protect_ignore:
has the effect of causing subsequent assignments to the specified parameter to be ignored, to within the constraints noted below.@protect_error:
has the effect of causing subsequent assignments to the specified parameter to be an error, for which an exception shall be thrown giving as much information as possible to enable resolution of the problem.@protect_error:
is defined as being a higher level of protection than@protect_ignore:
for the purposes of priority.- During assignment, a modified protection level shall be inherited from an enclosing parameter (e.g. if the nested parameter has no specified protection), except that it shall be an error to specify a protection level lower than that of an enclosing parameter.
- It shall be an error to use a binding modifier for an assignment to a FHiCL parameter that already has a value.
- A non-prolog item shall always shadow a prolog item at the top level: e.g.:
BEGIN_PROLOG a : { b : { c : 37 } } END_PROLOG a.x : 12
shall be equivalent to:a : { x : 12 }
This is a restatement of preexisting behavior, not a change. - Use of
@erase
at a higher level than a protected item shall ignore the protection of the item: e.g.:a : { b : { x @protect_ignore: 7 } } a : @erase
is equivalent to an empty definition, whereas for:a @protect_ignore: { b : { x : 7 } } a : @erase
the second line shall be ignored. This behavior was determined to be most consistent with existing behaviors. - Similarly, a local or fully-qualified override shall honor protection, whereas a nested replacement shall not. For example, as a line following:
a : { b : { c @protect_error: 37 } }
this:a.b.c : 37
shall cause an error, whereas:a : 12
ora : { b : { c : 43 } }
shall not. The fully-specified:a : { b : { c @protect_error: 37 d : 31 c : 43 } }
where the attempted override is local, shall be an error. - Since particularly
@protect_ignore:
could cause issues for manipulations in code at the level offhicl::intermediate_table
, the function
has been replaced in the public interface by:fhicl::extended_value & fhicl::intermediate_table::operator [] (std::string const & name)
which will returnfhicl::extended_value * fhicl::intermediate_table::locate(std::string const & name)
nullptr
if the specified item may not be updated, and:fhicl::extended_value & fhicl::intermediate_table::update(std::string const &name)
which will throw an exception in this case.
- These are single symbols: no daylight is permitted between the initial
fhicl-cpp 3.05.02, 2015/05/05 (art suite 1.14.01, art suite 1.14.02, art suite 1.14.03)¶
fhicl-cpp 3.05.01, 2015/05/01 (art suite 1.14.00)¶
- New retrieval facilities for
std
containers: It is now possible to retrievestd::tuple
,std::array
, andstd::pair
objects from FHiCL parameter sets:pset.get<std::tuple<type1,type2,type3>>("tuple"); pset.get<std::pair <type1,type2> >("pair" ); pset.get<std::array<type1,4u> >("array");
Resolves feature #5582.
- New retrieval facilities for
CLHEP
vectors: Users can now decode FHiCL sequences into variousCLHEP
objects:pset.get<CLHEP::Hep2Vector >(...); pset.get<CLHEP::Hep3Vector >(...); pset.get<CLHEP::HepLorentzVector>(...);
N.B. Using theCLHEP
retrieval facilities requires includingart/Utilities/ParameterSetHelpers/CLHEP_ps.h
in the relevant source code. Resolves feature #3202.
- FHiCL parameter tracing: A facility now exists to track the filename and line number of the origin of the FHiCL parameters (or where they were overridden). This involves:
- New function:
fhicl::ParameterSet::get_src_info(key)
prints"filename:line-number"
- Modified function:
fhicl::ParameterSet::to_indented_string(unsigned initial_indent_level = 0, bool annotate = true)
now accepts an annotation flag that will provide the source information (based on call toget_src_info
) for the givenParameterSet
instance and all nested parameters therein.
Resolves feature #7788.
- New function:
- Improved error diagnostics upon parameter retrieval failure: In the event that
fhiclcpp
is unable to convert the FHiCL parameter to the requested type, more helpful information is provided that tells the user which parameter conversion failure occurred. See feature #2672 (resolved) for details.
fhicl-cpp 3.03.00, 2015/02/13 (art suite 1.13.00, art suite 1.13.01, art suite 1.13.02)¶
- Support for e7 qualifier.
- SQLite upgraded to 3.08.08.02.
- Parsing is more strict: whitespace is no longer allowed either side of the
::
for directives@local
,@erase
,@id
,@sequence
and@table
. - Users can now provide their own
void decode(boost::any const &, T &)
andX encode(T const &)
(withX
asps_atom_t
,ps_sequence_t
) in the same namespace asT
, and it will be used byfhicl::ParameterSet::get()
andfhicl::ParameterSet::put()
respectively according to the rules of Argument-dependent Lookup. - New function
bool fhicl::ParameterSet::is_nil(std::string const & key)
. - Implement issue #4452 - fix misbehavior of
fhicl::ParameterSet::put()
andfhicl::ParameterSet::insert()
:fhicl::ParameterSet::insert()
is now private.fhicl::ParameterSet::put()
now throws on failure to insert due to existing key.- New public function
fhicl::ParameterSet::put_or_replace()
allows value replacement if key already exists. - New public function
fhicl::ParameterSet::put_or_replace_compatible()
allows value replacement on existing key, but throws if replacement value is not of the same FHiCL type (atom, sequence or table) as the existing value. Replacement of and bynil
is always allowed.
- Explicitly enforce the implicit requirement that the
key
argument tofhicl::ParameterSet::putXXX()
be local (not nested perx.y.z
). Nested keys are handled correctly forfhicl::ParameterSet::getXXX()
.
fhicl-cpp 3.02.00, 2014/12/16¶
- New function
bool fhicl::ParameterSet::has_key(std::string const & key)
.
fhicl-cpp 3.01.03, 2014/11/06 (art suite 1.12.04, art suite 1.12.05)¶
fhicl-cpp 3.01.02, 2014/09/15 (art suite 1.12.00, art suite 1.12.01, art suite 1.12.02, art suite 1.12.03)¶
- Bug #6935: Fix SQLite3 minimum version to reflect actual interface requirements.
fhicl-cpp 3.01.01, 2014/08/28 (art suite 1.11.02, art suite 1.11.03)¶
fhicl-cpp 3.01.00, 2014/08/25 (art suite 1.11.00, art suite 1.11.01)¶
- Technology preview: new executable fhicl-write-db: read a FHiCL file and export its contents to a standalone SQLite DB file.
fhicl-cpp 3.00.01, 2014/08/19¶
e6
, C++1y support, migrate tocetbuildtools
4.
fhicl-cpp 3.00.00, 2014/08/01¶
ParameterSetRegistry
is now its own specialized class, rather than being a typedef ofcet::registry_via_id
. It carries an in-memory SQLite backing DB to avoid having to parse incoming parameter sets unless they are specifically requested. Other features ofParameterSetRegistry
distinct from that originally inregistry_via_id
:static void importFrom(sqlite3 * db)
Import parameter sets from a DB.static void exportTo(sqlite3 * db)
Export all parameter sets to a DB.static void stageIn()
Stage all parameter sets from backing DB into the registry proper asart::ParameterSet
(requires parsing).- In order to support unordered inserts of parameter sets containing
@id::
references, an overloadedput()
function supports the provision of the ID rather than requiring it to be calculated from the fully-expanded parameter set.
- New keyword:
@erase
.
Cause FHiCL to forget a parameter. Example:... physics.analyzers.myAnalyzer.numHistograms: @erase
An attempt toget<>()
this parameter will behave as if it had never been defined: a default will be used if specified, otherwise an exception shall be thrown. This is distinct from the behavior of parameters whose value is@nil
, which attempts toget<>()
will cause an exception to be thrown unconditionally. - New keyword:
@table::
.
Reference keyword causing the referenced table to be expanded in-place. Valid only in table contexts, including top-level and prologs. Example:BEGIN_PROLOG tfrag: { b: 7 c: 8} END_PROLOG ... physics.analyzers.myAnalyzer: { ... @table::tfrag ... }
will cause parametersb
andc
to be defined in themyAnalyzer
configuration. Usual overriding rules apply: it would be as if parametersb
andc
were actually defined at the location of the reference. - New keyword:
@sequence::
Reference keyword causing the referenced sequence to be expanded in-place. Valid only in sequence contexts (between[
and]
). Example:BEGIN_PROLOG sfrag: [ 3, 4, 5 ] END_PROLOG physics.analyzers.myAnalyzer: { ... numbers: [ 1, 2, @sequence::sfrag, 6, 7 ] ... }
will causephysics.analyzers.myAnalyzer.numbers
to consist of the numbers 1 through 7, in order. As above, usual overriding rules apply.
fhicl-cpp 2.20.00, 2014/06/20¶
- New keyword
@id::<hash>
for delayed reference to saved parameter sets. This is distinct from@db::
, which is expanded immediately upon parsing.@id::
is intended for use during generation of persistent parameter sets for insertion into the DB rather than by users in FHiCL files. - New functions
bool ParameterSet::is_key_to_{table,sequence,atom}()
.
fhicl-cpp 2.19.05, 2014/07/16 (art suite 1.10.00b)¶
fhicl-cpp 2.19.04, 2014/06/10 (art suite 1.10.00, art suite 1.10.00a)¶
fhicl-cpp 2.19.01a, 2014/07/18 (art suite 1.09.04)¶
- No default FHiCL file path, since no FHiCL files for installation.
fhicl-cpp 2.19.01, 2014/05/06 (art suite 1.09.03)¶
- Bug #6052: FHiCL type traits
is_int
,is_uint
andis_numeric
misbehave under Mac OS X.
fhicl-cpp 2.19.00, 2014/04/04¶
- Improvements to appearance of indented
ParameterSet
output.
fhicl-cpp 2.18.03, 2014/03/21 (art suite 1.09.02)¶
fhicl-cpp 2.18.02, 2014/03/14 (art suite 1.09.00, art suite 1.09.01)¶
fhicl-cpp 2.18.01, 2014/03/11¶
- Partial support for ICC (bugs present in 14.0.2).
fhicl-cpp 2.18.00, 2014/02/19¶
- Support for GCC 4.8.2.
fhicl-cpp 2.17.12, 2013/10/15 (art suite 1.08.09, art suite 1.08.10)¶
fhicl-cpp 2.17.11 (art suite 1.08.06, art suite 1.08.07)¶
fhicl-cpp 2.17.10 (art suite 1.08.04, art suite 1.08.05)¶
fhicl-cpp 2.17.09 (art suite 1.08.03)¶
fhicl-cpp 2.17.07¶
- Finish Mac OS X support: add libraries required for closed link.
fhicl-cpp 2.17.06 (art suite 1.08.01, art suite 1.08.02)¶
fhicl-cpp 2.17.04¶
- Toward Mac OSX support: remove linux-ism
ulong
.
fhicl-cpp 2.17.03¶
- Support for GCC 4.8.1.
fhicl-cpp 2.17.02 (art suite 1.03.06, art suite 1.03.07, art suite 1.03.08, art suite 1.04.00, art suite 1.05.00, art suite 1.06.00, art suite 1.07.00, art suite 1.07.01)¶
fhicl-cpp 2.17.01 (art suite 1.02.01, art suite 1.02.02, art suite 1.02.03, art suite 1.02.04, art suite 1.02.05, art suite 1.02.06, art suite 1.02.07, art suite 1.03.00, art suite 1.03.01, art suite 1.03.02, art suite 1.03.03, art suite 1.03.04, art suite 1.03.05)¶
fhicl-cpp 2.17.00 (art suite 1.02.00)¶
- Recognize binary and hex numbers with "0b" and "0x" respectively.
- Correct canonicalization of
char const *
.
- New
get()
,put()
interface tointermediate_table
to improve ease of post-processing. Alsoerase()
,putEmptyTable()
,putEmptySequence()
,putNil()
.
- Use
@nil
to represent nil instead ofnil
.
encode()
will now do the canonicalization for floating point numbers.
fhicl-cpp 2.16.12 (art suite 1.01.00, art suite 1.01.01)¶
- First C++2011-only release.
- Bug #2792: Incorrect canonicalization of true, false and infinity under certain circumstances.
fhicl-cpp 2.16.08 (art suite 1.00.12)¶
- Improve exception information.
fhicl-cpp 2.16.07 (art suite 1.00.10, art suite 1.00.11)¶
- Build against (and require) Boost 1.49.0.
fhicl-cpp 2.16.03 (art suite 1.00.07, art suite 1.00.08)¶
fhicl-cpp 2.16.01 (art suite 1.00.06)¶
- Fix minor parsing-order buglet.
- Build against (and require) Boost 1.47.0.
fhicl-cpp 2.15.04 (art suite 1.00.04, art suite 1.00.05)¶
- Enable
prof
andopt
builds.
fhicl-cpp 2.15.03 (art suite 1.00.00, art suite 1.00.01)¶
- Improve diagnostics sensitivity and adjust code for clean compilation.
fhicl-cpp 2.15.02¶
- First build against GCC 4.6.
fhicl-cpp 2.15.01 (art suite 0.07.16)¶
- New valueless (i.e.
nil
) insertion interfaceParameterSet::put(std::string const& key)
.
fhicl-cpp 2.15.00¶
- Fix integral conversion bug #1845.
- Fix nested overridden values bug #1847.
- Prevent conversions from
nil
.
fhicl-cpp 2.14.00¶
- New forwarding header
"fhiclcpp/fwd.h"
. - Allow overriding prolog entries with non-prolog entries by the same name.
fhicl-cpp 2.13.00¶
- New
ParameterSet::erase(std::string const& key)
.
fhicl-cpp 2.12.10 (art suite 0.07.12, art suite 0.07.13, art suite 0.07.14, art suite 0.07.15)¶
fhicl-cpp 2.12.09 (art suite 0.07.10, art suite 0.07.11)¶
fhicl-cpp 2.12.06¶
- New
ParameterSet::to_indented_string()
.
fhicl-cpp 2.12.04 (art suite 0.07.06, art suite 0.07.07, art suite 0.07.08, art suite 0.07.09)¶
fhicl-cpp 2.12.03 (art suite 0.07.03, art suite 0.07.04, art suite 0.07.05)¶
fhicl-cpp 2.12.02 (art suite 0.07.00, art suite 0.07.02)¶
fhicl-cpp 2.12.01 (art suite 0.06.02, art suite 0.06.03)¶
- Support user-defined interpretation of values via new
ParameterSet::get(std::string const& key, T convert(Via const&))
and friends.
fhicl-cpp 2.12.00¶
- Support deep name lookup in nested parameter sets.