[issue38075] Make random module PEP-384 compatible

2020-03-10 Thread STINNER Victor


STINNER Victor  added the comment:


New changeset 00d7cd8ab8db2c1e1f591ade828f88a1a973d70f by Victor Stinner in 
branch 'master':
bpo-38075: Fix random_seed(): use PyObject_CallOneArg() (GH-18897)
https://github.com/python/cpython/commit/00d7cd8ab8db2c1e1f591ade828f88a1a973d70f


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2020-03-10 Thread STINNER Victor


STINNER Victor  added the comment:

Commit 04f0bbfbedf8d2bb69b012f853de6648b1a9f27f introduced a regression: 
bpo-39918.

I proposed PR 18897 to fix it.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2020-03-10 Thread STINNER Victor


Change by STINNER Victor :


--
pull_requests: +18255
pull_request: https://github.com/python/cpython/pull/18897

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-16 Thread STINNER Victor


STINNER Victor  added the comment:

commit 09dc2c672f937cbe53300cb680fca1f9c78ff976
Author: Dino Viehland 
Date:   Sun Sep 15 15:51:44 2019 +0100

Fix missing dec ref (#16158)

diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index 8b0a0244bf..1ea2bf28ab 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -572,6 +572,7 @@ static int
 _random_clear(PyObject *module)
 {
 Py_CLEAR(_randomstate(module)->Random_Type);
+Py_CLEAR(_randomstate(module)->Long___abs__);
 return 0;
 }

--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-15 Thread STINNER Victor


STINNER Victor  added the comment:

> bpo-38075: Port _randommodule.c to PEP-384 (GH-15798)

It seems like this change introduced a reference leak: bpo-38176.

--
nosy: +vstinner

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-13 Thread Thomas Wouters


Thomas Wouters  added the comment:


New changeset 04f0bbfbedf8d2bb69b012f853de6648b1a9f27f by T. Wouters (Dino 
Viehland) in branch 'master':
bpo-38075: Port _randommodule.c to PEP-384 (GH-15798)
https://github.com/python/cpython/commit/04f0bbfbedf8d2bb69b012f853de6648b1a9f27f


--
nosy: +twouters

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-10 Thread Dino Viehland


Dino Viehland  added the comment:

There's several different reasons why these changes are beneficial.  It'll help 
make the modules more compatible with PEP 554 in the future, enable more code 
re-use across Python VMs, reduce code maintenance going forward, and may also 
help with performance oriented changes in the future.  

On the PEP 554 front it is necessary to remove the static state that is used in 
the modules as we can't have sharing across the interpreters.  The modules that 
are loaded into the different interpreter will need to not share any state on 
so all of their state needs to be per-instance state (there's also just an 
argument that static global state is just kind of ugly).

On the re-use across VMs front it'll mean that alternative VMs will only need 
to stick to the stable API and well be able to use these modules as-is without 
having to re-implement them.  It may not even be strictly necessary that these 
modules stick to 100% of the stable API if the places where they go outside 
dramatically help the implementation (for example PR 15805 uses _PyBytesWriter 
still).  

Sticking to the stable API will also naturally make it somewhat easier to make 
changes that impact the non-stable API.  By it's very nature the stable API is 
going to change less (theoretically never) and therefore these modules will be 
less impacted by updates which are attempting to improve performance on the 
core.  One example of that is the recent vector call support where many of the 
types needed to be updated (although trivially).  

So the final, and probably most speculative area, is the possibility of 
unlocking performance in the core runtime per Victor's stable API work: 
https://pythoncapi.readthedocs.io/.  By having less dependencies on the core 
implementation details it should be easier to evolve those going forward an 
making it easier to unlock future performance gains in the core.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-10 Thread Christian Heimes


Change by Christian Heimes :


--
nosy: +christian.heimes
resolution: fixed -> 
stage: resolved -> patch review
status: closed -> open

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-10 Thread Christian Heimes


Change by Christian Heimes :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed
type:  -> enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-10 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

I have the same questions. The new code looks more complex and cumbersome. What 
is the benefit of all these changes?

I see you have created many similar issues. Would be nice to discuss first on 
the Python-Dev list what they do and why they are needed.

--
nosy: +serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-09 Thread Raymond Hettinger


Raymond Hettinger  added the comment:

I'm curious what this does for us.  _randommodule.c isn't public.  Internally, 
we get to use our full ABI, not just the stable public ABI.

I'm unclear on why this needs to change at all.  Is code like this deemed 
broken in some way?

--
nosy: +rhettinger

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-09 Thread Dino Viehland


Change by Dino Viehland :


--
keywords: +patch
pull_requests: +15450
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/15798

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38075] Make random module PEP-384 compatible

2019-09-09 Thread Dino Viehland


New submission from Dino Viehland :

Make random module PEP-384 compatible

--
assignee: dino.viehland
components: Extension Modules
messages: 351509
nosy: dino.viehland, eric.snow
priority: normal
severity: normal
status: open
title: Make random module PEP-384 compatible
versions: Python 3.9

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com