18013, "bradcray", "C Types: Bring into a single module, but where?", "2021-07-01T01:10:54Z"
Currently in Chapel's standard modules, what we might think of as core C types are scattered across different modules:
c_intis defined in
c_floatis defined in
c_ptris defined in
The net result is that things are spread out in a nonintuitive way and several modules need to be used if a variety of C types need to be used.
There is a general consensus on the team to bring these together into a single module. The main questions are what that module should be called and what it should contain. Leading contenders are:
This would define everything in
SysCTypes today plus
c_void_ptr (assuming it doesn't go away with #18011), and
This would define everything in the previous proposal plus other capabilities that felt closely related, like potentially those currently defined in
For example, imagine that
C.Types contains everything in the
CTypes proposal above, and that
CMemory contains everything else in the
The idea here would be that one could say
C.ptr rather than
c_ptr when using a fully qualified style. See issue #18012 for more on this idea.
I'm not putting voting options on this issue (yet) because I'd like to see more discussion on it first and to see how #18012 evolves.