<mattip>
hmm. The code paths are very different in cython. How close is that PR to being merged and released?
<mattip>
will there be something like "#ifdef HPY_SUPPORTS_PEP489" ?
<antocuni>
mattip: unless there is a good reason to do the opposite, I am +1 to always use multiphase initialization in HPy
<antocuni>
I don't understand the question about HPY_SUPPORTS_PEP489
<mattip>
probably I don't understand what multiphase actually means
<mattip>
right now, static HPy init_simple_impl(HPyContext *ctx) calls HPyModule_Create(ctx, &moduledef);
<mattip>
which returns ctx_Module_Create(ctx, mdef);
<antocuni>
yes
<mattip>
which creates a PyModuleDef, sets up the fields and calls PyModule_Create
<antocuni>
on CPython, yes
<antocuni>
on pypy it creates the module in its own way of course
<mattip>
let's stick with cpython for now
<antocuni>
ok
<mattip>
cython does something different
<mattip>
I think, it is very confusing with all the ifdefs
<antocuni>
all the ifdefs inside the cython-generated code?
<mattip>
yes
<antocuni>
yes, cython generated code is a mess :(
<mattip>
so it seems cython wants to do that all itself, so I need to bypass much of what cython does and call HPyModule_Create()
<antocuni>
yes
<mattip>
(I need to build the moduledef, but that is a side issue)
<mattip>
what will happen if there is multiphase module creation?
<antocuni>
if you compile with -DHPY, you need to build an HPyModuleDef which is potentially very different than the PyModuleDef which cython generates now
<antocuni>
so I think it's much easier to generate a completely different code path
<mattip>
do I still call HPyModule_Create() ?
<antocuni>
good question
<antocuni>
I don't know and didn't think about it too much
<antocuni>
I think that Hodgestar have some insight
<mattip>
so that is what I was trying to figure out, and also to figure out how I can differentiate between future HPy and current HPy
<antocuni>
I seem to remember he found some problems while working on his PR but I don't remember much
<mattip>
if HPyModule_Create is no longer the right thing to do, I will need some kind of signal
<mattip>
to differentiate between the two versions of HPy
<antocuni>
I think there is no need to differentiate between hpy versions
<antocuni>
the moment in which we decide to kill HPyModule_Create in favor of something else, you can just drop support from your cython backend
<antocuni>
no need to target multiple hpy versions at this point
<antocuni>
since we are still changing the API a lot
<mattip>
huh?
<mattip>
the generated C code will be out in the wild, and will stop working
<antocuni>
as will do the manually written C code
<antocuni>
that's the point of having an alpha status, so that we can break the world and people cannot complain :)
<mattip>
ok
<antocuni>
I don't think that your cython branch will be merged any time soon anyway, won't it?
<antocuni>
i.e., there is little change that people will distribute hpy-compatible cython-generated code "by chance" without knowing what they are doing
<mattip>
right. OTOH that reduces the chances cython will merge it at all until HPy has a stable API
<mattip>
so we will only get people to try it off some fork of cython
<mattip>
which does not build momentum for HPy adoption
<antocuni>
that's true
<antocuni>
but honestly, HPy is not really ready to be adopted anyway
<mattip>
chicken and egg
<antocuni>
at some point we need to decided to declare the API as stable and try hard not to break it, but I think we are not there yet
* Hodgestar
catches up. Having the ISP I'm attached to down for 24+ hours was a bit annoying. :)
<antocuni>
and also in the next days, up to 2021-03-17 according to my logs
<Hodgestar>
mattip: My plan was to make HPy always use multi-phase initialization. I started https://github.com/hpyproject/hpy/pull/184 but haven't had time to finish it yet.
<Hodgestar>
Let me see how hard it is to merge master into that.
<Hodgestar>
mattip: Merging was fairly easy. The branch is still a WIP, but at least the merge conflicts are gone.
jboi has quit [Ping timeout: 244 seconds]
antocuni has quit [*.net *.split]
pjenvey has quit [*.net *.split]
ammar2 has quit [*.net *.split]
pjenvey has joined #hpy
ammar2 has joined #hpy
antocuni has joined #hpy
ammar2 has quit [Ping timeout: 265 seconds]
ammar2 has joined #hpy
computerfarmer has joined #hpy
computerfarmer has quit [Ping timeout: 272 seconds]
jboi has joined #hpy
computerfarmer has joined #hpy
jboi has quit [Quit: node-irc says goodbye]
computerfarmer has quit [Read error: Connection reset by peer]
jboi has joined #hpy
computerfarmer has joined #hpy
computerfarmer has quit [Ping timeout: 272 seconds]
computerfarmer has joined #hpy
computerfarmer has quit [Quit: Konversation terminated!]