Improve new bindings based on Clang.jl
ranocha opened this issue · 1 comments
ranocha commented
The first complete version is implemented in #49. Here is a list of improvements left for future PRs:
- Add more tests for CI
- Some basic tests performed similarly for
p4est
- Tests of stuff we use in Trixi.jl, see, e.g., trixi-framework/Trixi.jl#1184
- Also run some tests with multiple (2?) MPI ranks
- More stuff later, e.g., wrap also VTK headers and test output
- Some basic tests performed similarly for
- Make tests look nicer
- Right now, defining functions in the
@testset
s used for@cfunction
does not work directly. Thus, we define callback functions before the other code, which is not ideal since it is not really local. Can we improve this, e.g., by writing such@testset
s in their own files?
- Right now, defining functions in the
- Set
strict = true
indocs/make.jl
and make Documenter work again in CI- Done in #61
- Improve corresponding Trixi.jl parts:
- Check whether
quadrant_obj = unsafe_load(quadrant); quadrant_obj.x
has a performance impact and whether we should use something likeunsafe_load(quadrant.x)
instead, see trixi-framework/Trixi.jl#1184
- Check whether
- Create helper functions in P4est.jl for patterns used often in Trixi.jl
- See for example the idea
pointer_load(info, sides, elem_count)
in trixi-framework/Trixi.jl#1184 (comment) (which should probably bepointer_load(info, :sides, :elem_count)
or@pointer_load(info, sides, elem_count)
) - Maybe #58 as an alternative?
- See for example the idea
- More
getproperty
overloads- Right now, we get nice
getproperty
overloads for some pointer types such asPtr{p4est_quadrant}
. It would be nice to have these overloads also to the basicstruct
s such asp4est
etc. - Maybe #58 as an alternative?
- Right now, we get nice
- Create a list of headers we do not wrap at the moment
- Are they needed, shall we add them?
- How do we want to generate and store new bindings?
- Bindings specific to
p4est
versions insrc
(as drafted in this PR in db12e75)? - Infrastructure to build new bindings as we currently have in
dev
with documentation how to use this stuff and put in in a file that can be used with locally generated bindings? - Describe the process in the docs and test it in CI
- Bindings specific to
- Handle every remaining comment
# TODO: Clang
(if any) - Get rid of
dev/fixes.sh
and implement the adaptations in Julia indev/generator.jl
to make everything accessible to people familiar with Julia but not necessarilysed
etc.
ranocha commented
@JoshuaLampert The new version including PointerWrapper
s should be released soon. Thus, you should be able to start working on the updates to Trixi.jl.