
This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.
Created on2010-11-10 18:49 bybelopolsky, last changed2022-04-11 14:57 byadmin. This issue is nowclosed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 5032 | merged | p-ganssle,2017-12-28 20:20 | |
| PR 5317 | merged | p-ganssle,2018-01-25 13:35 | |
| PR 5318 | merged | p-ganssle,2018-01-25 14:09 | |
| PR 5814 | merged | p-ganssle,2018-02-22 16:33 | |
| PR 5819 | merged | miss-islington,2018-02-22 20:28 | |
| PR 5929 | merged | miss-islington,2018-02-27 19:41 | |
| Messages (14) | |||
|---|---|---|---|
| msg120928 -(view) | Author: Alexander Belopolsky (belopolsky)*![]() | Date: 2010-11-10 18:49 | |
With timezone class added to datetime module, C API should be extended to at the minimum support efficient creation of timezone instances and access to the singleton UTC instance.I am not sure whether PyDateTime_TimeZone details should be exposed in datetime.h because presumably programmers should access it through the abstract tzinfo interface. | |||
| msg251873 -(view) | Author: Alexander Belopolsky (belopolsky)*![]() | Date: 2015-09-29 18:13 | |
Sinceissue 24773 (PEP 495 implementation) will touch on CAPI, maybe it is time to implement this as well. | |||
| msg309214 -(view) | Author: Alyssa Coghlan (ncoghlan)*![]() | Date: 2017-12-30 03:44 | |
Would it be possible to deprecate (or at least stop enhancing) the current datetime C API and add a new capsule based one instead?We're trying to get extension module authors to *stop* relying on C level globals, since it causes problems with:- memory usage analysis- interpreter reinitialisation- module reloading- subinterpretersUnfortunately, the current design of the datetime C API *requires* the use of C level global state. | |||
| msg309234 -(view) | Author: Paul Ganssle (p-ganssle)*![]() | Date: 2017-12-30 15:34 | |
@NickI'm certainly fine with re-configuring my PR to center around a new capsule module with deprecation of the old C API (though if you have any examples of what you have in mind that would be helpful to me). Certainly the "C global needs to be initiated" problem has bitten me in the past and I'm certain will continue to bite people in the future.That said, I think it would be really good if we could get a fast path for timezone creation and access to the UTC singleton into the Python 3.7 release. I think it's kind of a big disparity between the Python and C APIs that's existed for too long already. | |||
| msg309264 -(view) | Author: Alyssa Coghlan (ncoghlan)*![]() | Date: 2017-12-31 04:30 | |
On 31 December 2017 at 01:34, Paul Ganssle <report@bugs.python.org> wrote:> That said, I think it would be really good if we could get a fast path for timezone creation and access to the UTC singleton into the Python 3.7 release. I think it's kind of a big disparity between the Python and C APIs that's existed for too long already.It turns out the API already *is* exported as a capsule:https://github.com/python/cpython/blob/master/Include/datetime.h#L149Our general guidance for capsule usage is just outdated, and thedatetime API follows that dated advice:https://docs.python.org/3/extending/extending.html#providing-a-c-api-for-an-extension-moduleI'll file a separate issue for that docs problem later (the tracker isreporting 502 Proxy Error for me right now) | |||
| msg309267 -(view) | Author: Alyssa Coghlan (ncoghlan)*![]() | Date: 2017-12-31 05:28 | |
https://bugs.python.org/issue32459 covers defining a module-reloading-friendly way of using capsules.For this issue, I now think it makes sense to just ignore that problem, and add whatever you need to the existing API. | |||
| msg310639 -(view) | Author: Alexander Belopolsky (belopolsky)*![]() | Date: 2018-01-24 22:29 | |
New changeset04af5b1ba9eb546a29735fac6cb5298159069b53 by Alexander Belopolsky (Paul Ganssle) in branch 'master':bpo-10381: Add timezone to datetime C API (#5032)https://github.com/python/cpython/commit/04af5b1ba9eb546a29735fac6cb5298159069b53 | |||
| msg310662 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2018-01-25 08:08 | |
Hunting reference leaks with "./python -m test -R 3:3 test_datetime" crashs since the commit04af5b1ba9eb546a29735fac6cb5298159069b53.***vstinner@apu$ ./python -m test -R 3:3 test_datetime Run tests sequentially0:00:00 load avg: 1.05 [1/1] test_datetimebeginning 6 repetitions123456Fatal Python error: Segmentation faultCurrent thread 0x00007ff71fe33040 (most recent call first): File "/home/vstinner/prog/python/master/Lib/test/datetimetester.py", line 5464 in test_utc_capi (...)Segmentation fault (core dumped)***Shorter example without -R, just run the same test twice:***vstinner@apu$ ./python -m test -v test_datetime test_datetime -m test_utc_capi== CPython 3.7.0a4+ (heads/master:cab0b2b053, Jan 25 2018, 09:06:01) [GCC 7.2.1 20170915 (Red Hat 7.2.1-2)]== Linux-4.14.13-300.fc27.x86_64-x86_64-with-fedora-27-Twenty_Seven little-endian== cwd: /home/vstinner/prog/python/master/build/test_python_26308== CPU count: 8== encodings: locale=UTF-8, FS=utf-8Run tests sequentially0:00:00 load avg: 1.26 [1/2] test_datetimetest_utc_capi (test.datetimetester.CapiTest_Pure) ... skipped 'Not relevant in pure Python'test_utc_capi (test.datetimetester.CapiTest_Fast) ... ok----------------------------------------------------------------------Ran 2 tests in 0.001sOK (skipped=1)0:00:00 load avg: 1.26 [2/2] test_datetimetest_utc_capi (test.datetimetester.CapiTest_Pure) ... skipped 'Not relevant in pure Python'test_utc_capi (test.datetimetester.CapiTest_Fast) ... Fatal Python error: Segmentation faultCurrent thread 0x00007f9836b31040 (most recent call first): File "/home/vstinner/prog/python/master/Lib/test/datetimetester.py", line 5464 in test_utc_capi (...)Segmentation fault (core dumped)*** | |||
| msg310676 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2018-01-25 13:58 | |
Ok, this time it should be fixed for real ;-) | |||
| msg310688 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2018-01-25 17:17 | |
Oh,PR 5317 title mentionned this bpo number, but the merged change omits the bpo number and so wasn't mentioned on this issue.PR 5317 added:commit58dc03c737a71de93edef7723c9f6186116288ef (upstream/master, master)Author: Paul Ganssle <pganssle@users.noreply.github.com>Date: Thu Jan 25 08:58:07 2018 -0500 Cleanup dangling reference in get_timezone_utc_capi (#5317) | |||
| msg313020 -(view) | Author: Alexander Belopolsky (belopolsky)*![]() | Date: 2018-02-27 19:41 | |
New changeset5bd04f964b4f1bcdbd0fa36de04f087c2db07cfe by Alexander Belopolsky (Paul Ganssle) in branch 'master':bpo-10381,bpo-32403: What's new entries for changes to datetime (gh-5814)https://github.com/python/cpython/commit/5bd04f964b4f1bcdbd0fa36de04f087c2db07cfe | |||
| msg313022 -(view) | Author: Alexander Belopolsky (belopolsky)*![]() | Date: 2018-02-27 19:58 | |
New changesetfff596f792a0752b0e571fa57809e5752aba6353 by Alexander Belopolsky (Miss Islington (bot)) in branch '3.7':bpo-10381,bpo-32403: What's new entries for changes to datetime (gh-5814) (gh-5929)https://github.com/python/cpython/commit/fff596f792a0752b0e571fa57809e5752aba6353 | |||
| msg321105 -(view) | Author: Paul Ganssle (p-ganssle)*![]() | Date: 2018-07-05 15:03 | |
This can be closed now, I think. | |||
| msg321117 -(view) | Author: STINNER Victor (vstinner)*![]() | Date: 2018-07-05 16:52 | |
I tested manually "./python -m test test_datetime test_datetime" in 3.6, 3.7 and master branches: I confirm that the test no longer crash. It has been fixed by the commit58dc03c737a71de93edef7723c9f6186116288ef.Moreover, I don't recall a recent crash on Windows Refleak or Gentoo Refleak buildbots.Thanks again Paul Ganssle for this nice enhancement! | |||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:57:08 | admin | set | github: 54590 |
| 2019-12-09 16:15:45 | belopolsky | link | issue30155 dependencies |
| 2018-07-05 16:52:42 | vstinner | set | status: open -> closed resolution: fixed messages: +msg321117 stage: patch review -> resolved |
| 2018-07-05 15:03:09 | p-ganssle | set | messages: +msg321105 |
| 2018-02-27 19:58:30 | belopolsky | set | messages: +msg313022 |
| 2018-02-27 19:41:42 | miss-islington | set | pull_requests: +pull_request5700 |
| 2018-02-27 19:41:33 | belopolsky | set | messages: +msg313020 |
| 2018-02-22 20:28:20 | miss-islington | set | pull_requests: +pull_request5596 |
| 2018-02-22 16:33:18 | p-ganssle | set | pull_requests: +pull_request5588 |
| 2018-01-25 17:17:10 | vstinner | set | messages: +msg310688 |
| 2018-01-25 14:09:02 | p-ganssle | set | pull_requests: +pull_request5164 |
| 2018-01-25 13:58:40 | vstinner | set | messages: +msg310676 |
| 2018-01-25 13:35:07 | p-ganssle | set | stage: resolved -> patch review pull_requests: +pull_request5163 |
| 2018-01-25 08:08:39 | vstinner | set | status: closed -> open nosy: +vstinner messages: +msg310662 resolution: fixed -> (no value) |
| 2018-01-24 22:30:42 | belopolsky | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2018-01-24 22:29:37 | belopolsky | set | messages: +msg310639 |
| 2017-12-31 05:28:49 | ncoghlan | set | messages: +msg309267 |
| 2017-12-31 04:30:12 | ncoghlan | set | messages: +msg309264 |
| 2017-12-30 15:34:04 | p-ganssle | set | messages: +msg309234 |
| 2017-12-30 03:44:58 | ncoghlan | set | nosy: +ncoghlan messages: +msg309214 |
| 2017-12-28 20:20:23 | p-ganssle | set | keywords: +patch stage: needs patch -> patch review pull_requests: +pull_request4919 |
| 2017-12-28 18:48:56 | p-ganssle | set | nosy: +p-ganssle |
| 2015-09-29 18:13:31 | belopolsky | set | nosy: +tim.peters messages: +msg251873 versions: + Python 3.6, - Python 3.5 |
| 2014-06-17 20:56:29 | BreamoreBoy | set | versions: + Python 3.5, - Python 3.2 |
| 2010-11-10 18:49:05 | belopolsky | create | |