-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
builder options and layout builder updates #1560
Conversation
Codecov Report
|
@jpivarski - please, check when you have time. Thanks! |
647d0d2
to
3d16a35
Compare
…ng std::tuple_element_t on all MacOS CI nodes
@jpivarski - this PR is complete. Please, check when you have time. Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can see, this PR does a few things:
- It passes BuilderOptions through a lot of constructors, rather than a single integer (
initial
). That will allow us to expand the options, such as a distinction between the initial GrowableBuffer panel size and subsequent ones. (We'll want to make those arguments not template parameters in LayoutBuilder, since I doubt an object like BuilderOptions can be a compile-time constant.If LayoutBuilder needs to have a default constructor, maybe the default constructor can supply default BuilderOptions?)I see that you did that already. - Various clean-ups, which cause indentation diffs.
On closer inspection, it looks to me like the only substantial change is that initial
→ options
, with all the supporting changes that needs. Is this right? (Have I missed anything?)
The only thing I would say needs to be changed is that a C++ user sees these options with a class name like awkward::BuilderOptions
, not awkward::Options
, because these options are specifically for builders.
just small stuff:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, great—it's ready to merge, then!
* restore array builder options * GrowableBuffer and its test updated * builder options added * introduce builder options to layout builder * drop C++17 requirement for cpp-only tests to C++14; work-around missing std::tuple_element_t on all MacOS CI nodes * fix compilation error and cleanup * clang format * remove default parameters from build options * remove initializer list * fix bitmasked mask and add builder options test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * address Jim's comments Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
ArrayBuilder
,LayoutBuilder
, andGrowableBuffer
are usingBuildOptions
now. There two options defined at the moment - aninitial
which isint64_t
and aresize
factor which isdouble
. TheOptions
is a tuple and can accept other parameters. A test is added.This PR also drops requirements on C++ version for
LayoutBuilder
from C++17 to C++14. BothGrowableBuffer
andBuildOptions
can be used with C++11.BitMasked
mask is fixed.