New submission from Erlend Egeberg Aasland <erlend.aasl...@innova.no>:

Porting sqlite3 to multi-phase initialisation is non-trivial and must be broken 
into smaller bpo's, often with multiple PR's per bpo. As far as I can see, this 
is the task list:

1) Heap types (PEP 384): bpo-41861
2) Argument Clinic: bpo-40956
3) Establish global module state
4) Pass `self` iso. callback object to trace, auth, and progress handlers 
(required for item 7)
5) Use sqlite3_create_collation_v2 iso. sqlite3_create_collation (see next list 
item)
6) For sqlite3_create_* functions, establish a context struct that contains the 
target user callback and the state. Modify callers to allocate memory, and the 
destructor to deallocate
7) Module state (PEP 573)
8) Multi-phase initialisation (PEP 489)

The list may be incomplete.

Separate bpo's for 1) and 2) are opened. Pr. 2020-10-17, 1) is almost done, and 
2), part 1 of 5 is awaiting review. It may be convenient to open up sub-bpo's 
for some of the other tasks as well. For instance, using 
sqlite3_create_collation_v2() iso. sqlite3_create_collation(). (FYI, this 
imposes no new SQLite version requirements.)

I'd wait until AC is implemented with moving forward with the rest of the PR's, 
in order to avoid merge mess. The exception might be item 4, preparing the 
trace/progress/auth callbacks, which is easy to isolate from the rest.

I've prepared branches for most of these things locally, some split in multiple 
PR's to ease reviewing.

I've tagged Victor Stinner and Dong-hee Na (hope that's ok), since they've been 
helpful with reviewing and providing helpful hints thus far. Any input from 
Berker Peksag would be highly appreciated; after all, he is the maintainer of 
this module :)

Ref. bpo-1635741 (the grand multi-phase issue)

----------
components: Library (Lib)
messages: 378825
nosy: berker.peksag, corona10, erlendaasland, vstinner
priority: normal
severity: normal
status: open
title: Convert sqlite3 to multi-phase initialisation (PEP 489)
type: enhancement
versions: Python 3.10

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42064>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to