[pypy-dev] PyPy's PyDateTime_Delta definition
Armin Rigo
arigo at tunes.org
Sat Sep 7 09:17:17 CEST 2013
Hi Skip, hi Amaury,
On Sat, Sep 7, 2013 at 3:16 AM, Skip Montanaro <skip at pobox.com> wrote:
> Alas, I am still confused. The PyDateTime_DELTA_GET_* macros aren't
> defined for CPython until the 3.x series. (There are macros in 2.7,
> but they are defined in datetimemodule.c, not in a public header file.
> PyPy declares them as functions.
Uh, yes, I'd like to ask this question too. In Python 2.7's
Include/datetime.h I see the struct PyDateTime_Delta (which is public)
and no macro PyDateTime_DELTA_*. There are macros
PyDateTime_TIME_GET_* and PyDateTime_DATE_GET_* as well as some
PyDateTime_GET_* for both date and datetime instances, which are
declared as structs with a non-public name. (Why? No clue)
It seems that "struct PyDateTime_Delta" is supposed to be purely
read-only. In case situation, wouldn't it make sense to expose a
structure with a similar layout? I don't think we care about the
overhead of copying three words; the only annoying case is about
read-write objects, when we want the changes in C to be reflected back
to the Python world.
> Is there some predefined "This is PyPy" macro I can check?
In this case, as a workaround, you can check "#ifndef
PyDateTime_DELTA_GET_..." and declare them yourself.
A bientôt,
Armin.
More information about the pypy-dev
mailing list