Victor Stinner
cbb9ba844f
gh-92536: Argument Clinic no longer emits PyUnicode_READY() ( #105208 )
...
Since Python 3.12, PyUnicode_READY() does nothing and always
returns 0.
Argument Clinic now also checks for .cpp files (PC/_wmimodule.cpp).
2023-06-02 01:31:58 +02:00
Victor Stinner
7f5afecfd7
gh-105156: Update Lib/test/clinic.test manually ( #105180 )
...
Update Lib/test/clinic.test manually for updated Py_UNICODE
converter: it now uses wchar_t type rather than Py_UNICODE.
2023-06-01 10:46:17 +02:00
Erlend E. Aasland
5245cb64d9
gh-68395: Avoid naming conflicts by mangling variable names in Argument Clinic ( #104065 )
...
Add all internally used variable names to CLINIC_PREFIXED_ARGS.
2023-05-05 13:40:18 +02:00
Kumar Aditya
7cf164ad5e
GH-100342: check for allocation failure in AC `*args` parsing ( #100343 )
2022-12-28 09:46:28 +05:30
colorfulappl
0da728387c
gh-64490: Fix bugs in argument clinic varargs processing ( #32092 )
2022-11-24 20:56:50 +01:00
colorfulappl
8dbe08eb7c
gh-99240: Fix double-free bug in Argument Clinic str_converter generated code (GH-99241)
...
Fix double-free bug mentioned at https://github.com/python/cpython/issues/99240 ,
by moving memory clean up out of "exit" label.
Automerge-Triggered-By: GH:erlend-aasland
2022-11-24 06:01:26 -08:00
colorfulappl
69f6cc77d0
gh-64490: Fix refcount error when arguments are packed to tuple in argument clinic ( #99233 )
2022-11-24 17:54:18 +05:30
Serhiy Storchaka
0ee9619a4c
gh-97728: Argument Clinic: Fix uninitialized variable in the Py_UNICODE converter (GH-97729)
...
It affects function os.system() on Windows and Windows-specific modules
winreg, _winapi, _overlapped, and _msi.
2022-10-03 10:42:54 +03:00
Erlend E. Aasland
f07adf82f3
gh-90928: Improve static initialization of keywords tuple in AC ( #95907 )
2022-08-13 12:09:40 +02:00
Eric Snow
6f6a4e6cc5
gh-90928: Statically Initialize the Keywords Tuple in Clinic-Generated Code (gh-95860)
...
We only statically initialize for core code and builtin modules. Extension modules still create
the tuple at runtime. We'll solve that part of interpreter isolation separately.
This change includes generated code. The non-generated changes are in:
* Tools/clinic/clinic.py
* Python/getargs.c
* Include/cpython/modsupport.h
* Makefile.pre.in (re-generate global strings after running clinic)
* very minor tweaks to Modules/_codecsmodule.c and Python/Python-tokenize.c
All other changes are generated code (clinic, global strings).
2022-08-11 15:25:49 -06:00
Erlend Egeberg Aasland
8bbd70b4d1
gh-94430: Allow params named `module` or `self` with custom C names in Argument Clinic ( #94431 )
2022-07-07 11:29:34 +02:00
Inada Naoki
f9c9354a7a
gh-92536: PEP 623: Remove wstr and legacy APIs from Unicode (GH-92537)
2022-05-12 14:48:38 +09:00
Victor Stinner
b270b82f11
gh-91320: Argument Clinic uses _PyCFunction_CAST() ( #32210 )
...
Replace "(PyCFunction)(void(*)(void))func" cast with
_PyCFunction_CAST(func).
2022-05-03 20:25:41 +02:00
Batuhan Taskaya
9af34c9351
bpo-20201: variadic arguments support for AC (GH-18609)
...
Implement support for `*args` in AC, and port `print()` to use it.
2021-07-16 18:43:02 +03:00
Inada Naoki
4d4be47705
Do not use Py_ssize_clean_t (GH-25940)
2021-05-08 10:17:37 +09:00
Serhiy Storchaka
349f76c6aa
bpo-36346: Prepare for removing the legacy Unicode C API (AC only). (GH-21223)
2020-06-30 09:03:15 +03:00
Serhiy Storchaka
5f4b229df7
bpo-40792: Make the result of PyNumber_Index() always having exact type int. (GH-20443)
...
Previously, the result could have been an instance of a subclass of int.
Also revert bpo-26202 and make attributes start, stop and step of the range
object having exact type int.
Add private function _PyNumber_Index() which preserves the old behavior
of PyNumber_Index() for performance to use it in the conversion functions
like PyLong_AsLong().
2020-05-28 10:33:45 +03:00
Serhiy Storchaka
578c3955e0
bpo-37999: No longer use __int__ in implicit integer conversions. (GH-15636)
...
Only __index__ should be used to make integer conversions lossless.
2020-05-26 18:43:38 +03:00
Serhiy Storchaka
12446e6a60
bpo-40179: Fix translation of #elif in Argument Clinic (GH-19364)
...
Co-authored-by: Ammar Askar <ammar@ammaraskar.com>
2020-04-18 17:52:48 +03:00
Sergey Fedoseev
a9ed91e6c2
bpo-27961: Replace PY_LONG_LONG with long long. (GH-15386)
2019-10-21 09:49:48 +03:00
Serhiy Storchaka
279f44678c
bpo-37206: Unrepresentable default values no longer represented as None. (GH-13933)
...
In ArgumentClinic, value "NULL" should now be used only for unrepresentable default values
(like in the optional third parameter of getattr). "None" should be used if None is accepted
as argument and passing None has the same effect as not passing the argument at all.
2019-09-14 12:24:05 +03:00
Rémi Lapeyre
4901fe274b
bpo-37034: Display argument name on errors with keyword arguments with Argument Clinic. (GH-13593)
2019-08-29 17:49:08 +03:00
Raymond Hettinger
aef9ad82f7
bpo-37942: Improve argument clinic float converter (GH-15470)
2019-08-24 19:10:39 -07:00
Serhiy Storchaka
3191391515
bpo-36127: Argument Clinic: inline parsing code for keyword parameters. (GH-12058)
2019-03-14 10:32:22 +02:00
Serhiy Storchaka
2a39d251f0
bpo-35582: Argument Clinic: Optimize the "all boring objects" case. (GH-11520)
...
Use _PyArg_CheckPositional() and inlined code instead of
PyArg_UnpackTuple() and _PyArg_UnpackStack() if all parameters
are positional and use the "object" converter.
2019-01-11 18:01:42 +02:00
Serhiy Storchaka
4fa9591025
bpo-35582: Argument Clinic: inline parsing code for positional parameters. (GH-11313)
2019-01-11 16:01:14 +02:00
Serhiy Storchaka
32d96a2b5b
bpo-23867: Argument Clinic: inline parsing code for a single positional parameter. (GH-9689)
2018-12-25 13:23:47 +02:00
Serhiy Storchaka
65ce60aef1
bpo-20180: Simplify char_converter in Argument Clinic. (GH-9828)
...
Fix also handling non-ascii default values.
2018-12-25 11:10:05 +02:00
Serhiy Storchaka
837c7dc1ed
bpo-35578: Add an example file for testing Argument Clinic converters. (GH-11306)
2018-12-25 10:17:28 +02:00