Skip to content

Conversation

@aalkin
Copy link
Member

@aalkin aalkin commented Jun 19, 2025

  • Make sure the FillType is a direct type in the definition of BuilderMaker for PODs
  • Use FillType without any additional qualifiers when defining the persister lambda for the TableBuilder
  • Use std::span as FillType for vector columns
  • gsl::span -> std::span throughout ASoA
  • update the writing cursor in Produces to handle changes in TableBuilder cursor
  • Use std::span also for fixed-size array column getters
  • Use rvalue for single-value column getters

@aalkin aalkin requested a review from a team as a code owner June 19, 2025 08:14
@github-actions
Copy link
Contributor

REQUEST FOR PRODUCTION RELEASES:
To request your PR to be included in production software, please add the corresponding labels called "async-" to your PR. Add the labels directly (if you have the permissions) or add a comment of the form (note that labels are separated by a ",")

+async-label <label1>, <label2>, !<label3> ...

This will add <label1> and <label2> and removes <label3>.

The following labels are available
async-2023-pbpb-apass4
async-2023-pp-apass4
async-2024-pp-apass1
async-2022-pp-apass7
async-2024-pp-cpass0
async-2024-PbPb-apass1
async-2024-ppRef-apass1
async-2024-PbPb-apass2
async-2023-PbPb-apass5

@aalkin aalkin requested a review from ktf June 19, 2025 08:15
@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI_slc9 for ad1accc at 2025-06-19 11:21:

## sw/BUILD/O2-latest/log
/sw/SOURCES/O2/14421-slc9_x86-64/0/Framework/Core/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> >, float, unsigned char>(const std::array<const char*, 5>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType)>::*)(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, const float&, const unsigned char&) const>::type {aka std::function<void(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, const float&, const unsigned char&)>}) (int, const int&, const std::vector<float>&, const std::vector<unsigned char>&, const float&, const unsigned char&)'
/sw/SOURCES/O2/14421-slc9_x86-64/0/Framework/Core/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, std::vector<float, std::allocator<float> > >(const std::array<const char*, 2>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, const int&, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, const int&, std::span<float, 18446744073709551615>)>}) (int, const int&, const std::vector<float>&)'
/sw/SOURCES/O2/14421-slc9_x86-64/0/Framework/Core/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> >, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> > >(const std::array<const char*, 6>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType)>::*)(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>)>}) (int, const int&, const std::vector<float>&, const std::vector<unsigned char>&, const std::vector<float>&, const std::vector<float>&, const std::vector<unsigned char>&)'
/sw/SOURCES/O2/14421-slc9_x86-64/0/Framework/Core/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> >, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> >, float, float, unsigned char>(const std::array<const char*, 8>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType)>::*)(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, const float&, const float&, const unsigned char&) const>::type {aka std::function<void(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, const float&, const float&, const unsigned char&)>}) (int, const int&, const std::vector<float>&, const std::vector<unsigned char>&, const std::vector<float>&, const std::vector<unsigned char>&, const float&, const float&, const unsigned char&)'
/sw/SOURCES/O2/14421-slc9_x86-64/0/Framework/Core/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> > >(const std::array<const char*, 3>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<float, 18446744073709551615>)>}) (int, const int&, const std::vector<float>&, const std::vector<float>&)'
/sw/SOURCES/O2/14421-slc9_x86-64/0/Framework/Core/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<int>, std::vector<float, std::allocator<float> > >(const std::array<const char*, 2>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<int> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<int, 18446744073709551615>, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<int, 18446744073709551615>, std::span<float, 18446744073709551615>)>}) (int, const std::vector<int>&, const std::vector<float>&)'
ninja: build stopped: subcommand failed.

Full log here.

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI_slc9 for c42f0c1 at 2025-06-19 15:28:

## sw/BUILD/O2Physics-latest/log
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> >, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >, std::vector<unsigned char, std::allocator<unsigned char> > >(const std::array<const char*, 6>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<float> >::FillType, o2::framework::BuilderMaker<std::vector<unsigned char> >::FillType)>::*)(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, const int&, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<float, 18446744073709551615>, std::span<unsigned char, 18446744073709551615>)>}) (int, o2::soa::Table<o2::aod::Hash<1088132446>, o2::aod::Hash<558318692>, o2::aod::Hash<2286545062> >::TableIteratorBase<o2::soa::DefaultIndexPolicy, o2::soa::Table<o2::aod::Hash<1088132446>, o2::aod::Hash<558318692>, o2::aod::Hash<2286545062> > >&, std::vector<float>&, std::vector<unsigned char>&, std::vector<float>&, std::vector<float>&, std::vector<unsigned char>&)'
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:133:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<int, float, float, float, float, unsigned char, unsigned char, float, float, float, float, float, float, unsigned char, float, float, float, unsigned char, unsigned char, float>(const std::array<const char*, 20>&)::<lambda(unsigned int, o2::framework::BuilderMaker<int>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<float>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType, o2::framework::BuilderMaker<unsigned char>::FillType, o2::framework::BuilderMaker<float>::FillType)>::*)(unsigned int, const int&, const float&, const float&, const float&, const float&, const unsigned char&, const unsigned char&, const float&, const float&, const float&, const float&, const float&, const float&, const unsigned char&, const float&, const float&, const float&, const unsigned char&, const unsigned char&, const float&) const>::type {aka std::function<void(unsigned int, const int&, const float&, const float&, const float&, const float&, const unsigned char&, const unsigned char&, const float&, const float&, const float&, const float&, const float&, const float&, const unsigned char&, const float&, const float&, const float&, const unsigned char&, const unsigned char&, const float&)>}) (int, o2::soa::Table<o2::aod::Hash<1373761118>, o2::aod::Hash<4191360419>, o2::aod::Hash<2286545062> >::TableIteratorBase<o2::soa::DefaultIndexPolicy, o2::soa::Table<o2::aod::Hash<1373761118>, o2::aod::Hash<4191360419>, o2::aod::Hash<2286545062> > >&, double&, double&, double&, float&, int&, int&, float&, float&, double&, double&, double&, float&, char&, float&, float&, float&, int&, char&, float&)'
ninja: build stopped: subcommand failed.

Full log here.

@alibuild
Copy link
Collaborator

alibuild commented Jun 19, 2025

Error while checking build/O2/fullCI_slc9 for a21def9 at 2025-06-23 08:08:

## sw/BUILD/O2Physics-latest/log
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:136:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<float> >(const std::array<const char*, 1>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<float, 18446744073709551615>)>}) (int, const std::vector<float>&)'
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:136:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<float> >(const std::array<const char*, 1>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<float, 18446744073709551615>)>}) (int, const std::vector<float>&)'
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:136:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<float> >(const std::array<const char*, 1>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<float, 18446744073709551615>)>}) (int, const std::vector<float>&)'
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:136:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<float> >(const std::array<const char*, 1>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<float, 18446744073709551615>)>}) (int, const std::vector<float>&)'
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:136:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<float> >(const std::array<const char*, 1>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<float, 18446744073709551615>)>}) (int, const std::vector<float>&)'
/sw/slc9_x86-64/O2/14421-slc9_x86-64-local1/include/Framework/AnalysisHelpers.h:136:11: error: no match for call to '(o2::framework::{anonymous}::memfun_type<void (o2::framework::TableBuilder::persist<std::vector<float> >(const std::array<const char*, 1>&)::<lambda(unsigned int, o2::framework::BuilderMaker<std::vector<float> >::FillType)>::*)(unsigned int, std::span<float, 18446744073709551615>) const>::type {aka std::function<void(unsigned int, std::span<float, 18446744073709551615>)>}) (int, const std::vector<float>&)'
ninja: build stopped: subcommand failed.

Full log here.

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI_slc9 for 6cd3426 at 2025-06-23 11:50:

## sw/BUILD/O2Physics-latest/log
/sw/SOURCES/O2Physics/14421-slc9_x86-64/0/Common/TableProducer/eventSelection.cxx:1366:41: error: cannot bind non-const lvalue reference of type 'long unsigned int&' to an rvalue of type 'long unsigned int'
ninja: build stopped: subcommand failed.

Full log here.

@aalkin
Copy link
Member Author

aalkin commented Jun 24, 2025

Replaced by #14441

@aalkin aalkin closed this Jun 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants