Victor Stinner
f0ccbbbc57
Emit METH_FASTCALL code in Argument Clinic
...
Issue #27810 :
* Modify vgetargskeywordsfast() to work on a C array of PyObject* rather than
working on a tuple directly.
* Add _PyArg_ParseStack()
* Argument Clinic now emits code using the new METH_FASTCALL calling convention
2016-09-09 17:40:38 -07:00
Victor Stinner
a9efb2f56e
Add METH_FASTCALL calling convention
...
Issue #27810 : Add a new calling convention for C functions:
PyObject* func(PyObject *self, PyObject **args,
Py_ssize_t nargs, PyObject *kwnames);
Where args is a C array of positional arguments followed by values of keyword
arguments. nargs is the number of positional arguments, kwnames are keys of
keyword arguments. kwnames can be NULL.
2016-09-09 17:40:22 -07:00
Benjamin Peterson
feb7edc153
dummy dtrace probes are a good place to use inline functions
2016-09-09 18:09:52 -07:00
Benjamin Peterson
dec2df3df3
fix dummy macro
2016-09-09 17:46:24 -07:00
Łukasz Langa
a785c87d6e
DTrace support: function calls, GC activity, line execution
...
Tested on macOS 10.11 dtrace, Ubuntu 16.04 SystemTap, and libbcc.
Largely based by an initial patch by Jesús Cea Avión, with some
influence from Dave Malcolm's SystemTap patch and Nikhil Benesch's
unification patch.
Things deliberately left out for simplicity:
- ustack helpers, I have no way of testing them at this point since
they are Solaris-specific
- PyFrameObject * in function__entry/function__return, this is
SystemTap-specific
- SPARC support
- dynamic tracing
- sys module dtrace facility introspection
All of those might be added later.
2016-09-09 17:37:37 -07:00
Benjamin Peterson
4fd64b9a6a
remove ceval timestamp support
2016-09-09 14:57:58 -07:00
Brett Cannon
a721abac29
Issue #26331 : Implement the parsing part of PEP 515.
...
Thanks to Georg Brandl for the patch.
2016-09-09 14:57:09 -07:00
Victor Stinner
ae8b69c410
Issue #27810 : Add _PyCFunction_FastCallKeywords()
...
Use _PyCFunction_FastCallKeywords() in ceval.c: it allows to remove a lot of
code from ceval.c which was only used to call C functions.
2016-09-09 14:07:44 -07:00
Victor Stinner
d873572095
Add _PyObject_FastCallKeywords()
...
Issue #27830 : Add _PyObject_FastCallKeywords(): avoid the creation of a
temporary dictionary for keyword arguments.
Other changes:
* Cleanup call_function() and fast_function() (ex: rename nk to nkwargs)
* Remove now useless do_call(), replaced with _PyObject_FastCallKeywords()
2016-09-09 12:36:44 -07:00
Victor Stinner
f9b760f48a
Rework CALL_FUNCTION* opcodes
...
Issue #27213 : Rework CALL_FUNCTION* opcodes to produce shorter and more
efficient bytecode:
* CALL_FUNCTION now only accepts position arguments
* CALL_FUNCTION_KW accepts position arguments and keyword arguments, but keys
of keyword arguments are packed into a constant tuple.
* CALL_FUNCTION_EX is the most generic, it expects a tuple and a dict for
positional and keyword arguments.
CALL_FUNCTION_VAR and CALL_FUNCTION_VAR_KW opcodes have been removed.
2 tests of test_traceback are currently broken: skip test, the issue #28050 was
created to track the issue.
Patch by Demur Rumed, design by Serhiy Storchaka, reviewed by Serhiy Storchaka
and Victor Stinner.
2016-09-09 10:17:08 -07:00
Yury Selivanov
52c4e7cc84
Issue #28008 : Implement PEP 530 -- asynchronous comprehensions.
2016-09-09 10:36:01 -07:00
Yury Selivanov
eb6364557f
Issue #28003 : Implement PEP 525 -- Asynchronous Generators.
2016-09-08 22:01:51 -07:00
Yury Selivanov
f8cb8a16a3
Issue #27985 : Implement PEP 526 -- Syntax for Variable Annotations.
...
Patch by Ivan Levkivskyi.
2016-09-08 20:50:03 -07:00
Eric Snow
4f29e75289
Issue #24254 : Drop cls.__definition_order__.
2016-09-08 15:11:11 -07:00
Martin Panter
0be894b2f6
Issue #27895 : Spelling fixes (Contributed by Ville Skyttä).
2016-09-07 12:03:06 +00:00
Steve Dower
3929499914
Issue #1602 : Windows console doesn't input or print Unicode (PEP 528)
...
Closes #17602 : Adds a readline implementation for the Windows console
2016-08-30 21:22:36 -07:00
Victor Stinner
3b6a6b4215
Add a new private version to the builtin dict type
...
Issue #26058 : Add a new private version to the builtin dict type, incremented
at each dictionary creation and at each dictionary change.
Implementation of the PEP 509.
2016-09-08 12:51:24 -07:00
Victor Stinner
a4348cc1be
Add documentation to the dict implementation
...
Issue #27350 .
2016-09-08 12:01:25 -07:00
Benjamin Peterson
a13e367778
simplify Py_UCSN definitions with stdint types
2016-09-08 11:38:28 -07:00
Steve Dower
940f33a50f
Issue #23524 : Finish removing _PyVerify_fd from sources
2016-09-08 11:21:54 -07:00
Steve Dower
cc16be85c0
Issue #27781 : Change file system encoding on Windows to UTF-8 (PEP 529)
2016-09-08 10:35:16 -07:00
Victor Stinner
98ee9d5b73
Add Py_MEMBER_SIZE macro
...
Issue #27350 : use Py_MEMBER_SIZE() macro to get the size of
PyDictKeyEntry.dk_indices, rather than hardcoding 8.
2016-09-08 09:33:56 -07:00
Victor Stinner
742da040db
Implement compact dict
...
Issue #27350 : `dict` implementation is changed like PyPy. It is more compact
and preserves insertion order.
_PyDict_Dummy() function has been removed.
Disable test_gdb: python-gdb.py is not updated yet to the new structure of
compact dictionaries (issue #28023 ).
Patch written by INADA Naoki.
2016-09-07 17:40:12 -07:00
Benjamin Peterson
47ff0734b8
more PY_LONG_LONG to long long
2016-09-08 09:15:54 -07:00
Eric Snow
46f97b85a8
Issue #15767 : Use ModuleNotFoundError.
2016-09-07 16:56:15 -07:00
Eric Snow
c943265ba5
Issue #15767 : Add ModuleNotFoundError.
2016-09-07 15:42:32 -07:00
Brett Cannon
d0600ed524
Make PyCodeObject.co_extra even more private to force users through the proper API.
2016-09-07 14:30:39 -07:00
Brett Cannon
5c4de2863b
Add the co_extra field and accompanying APIs to code objects.
...
This completes PEP 523.
2016-09-07 11:16:41 -07:00
Benjamin Peterson
5223f08e78
make _Py_static_string_init use a designated initializer
2016-09-07 10:33:28 -07:00
Benjamin Peterson
2f8bfef158
replace PY_SIZE_MAX with SIZE_MAX
2016-09-07 09:26:18 -07:00
Steve Dower
f5aba58480
Issue #27959 : Adds oem encoding, alias ansi to mbcs, move aliasmbcs to codec lookup
2016-09-06 19:42:27 -07:00
Victor Stinner
e66987e626
os.urandom() now blocks on Linux
...
Issue #27776 : The os.urandom() function does now block on Linux 3.17 and newer
until the system urandom entropy pool is initialized to increase the security.
This change is part of the PEP 524.
2016-09-06 16:33:52 -07:00
Benjamin Peterson
ca47063998
replace Py_(u)intptr_t with the c99 standard types
2016-09-06 13:47:26 -07:00
Benjamin Peterson
b9d9eeda2a
require uintptr_t to exist
2016-09-06 13:33:56 -07:00
Benjamin Peterson
9b3d77052f
replace Python aliases for standard integer types with the standard integer types ( #17884 )
2016-09-06 13:24:00 -07:00
Benjamin Peterson
88bd3edb3e
only include inttypes.h ( #17884 )
2016-09-06 13:05:58 -07:00
Serhiy Storchaka
ea525a2d1a
Issue #27078 : Added BUILD_STRING opcode. Optimized f-strings evaluation.
2016-09-06 22:07:53 +03:00
Benjamin Peterson
4fe55106d1
require standard int types to be defined ( #17884 )
2016-09-06 11:58:01 -07:00
Benjamin Peterson
af580dff4a
replace PY_LONG_LONG with long long
2016-09-06 10:46:49 -07:00
Benjamin Peterson
ed4aa83ff7
require a long long data type ( closes #27961 )
2016-09-05 17:44:18 -07:00
Brett Cannon
3cebf93872
Implement the frame evaluation API aspect of PEP 523.
2016-09-05 15:33:46 -07:00
Eric Snow
92a6c170e6
Issue #24254 : Preserve class attribute definition order.
2016-09-05 14:50:11 -07:00
Mark Dickinson
7c4e409d07
Issue #11734 : Add support for IEEE 754 half-precision floats to the struct module. Original patch by Eli Stevens.
2016-09-03 17:21:29 +01:00
Raymond Hettinger
15f44ab043
Issue #27895 : Spelling fixes (Contributed by Ville Skyttä).
2016-08-30 10:47:49 -07:00
Victor Stinner
e90bdb19f2
Issue #27830 : Revert, remove _PyFunction_FastCallKeywords()
2016-08-25 23:26:50 +02:00
Victor Stinner
3f1057a4b6
method_call() and slot_tp_new() now uses fast call
...
Issue #27841 : Add _PyObject_Call_Prepend() helper function to prepend an
argument to existing arguments to call a function. This helper uses fast calls.
Modify method_call() and slot_tp_new() to use _PyObject_Call_Prepend().
2016-08-25 01:04:14 +02:00
Victor Stinner
577e1f8cb4
Add _PyObject_FastCallKeywords()
...
Issue #27830 : Similar to _PyObject_FastCallDict(), but keyword arguments are
also passed in the same C array than positional arguments, rather than being
passed as a Python dict.
2016-08-25 00:29:32 +02:00
Victor Stinner
74319ae219
Use Py_ssize_t type for number of arguments
...
Issue #27848 : use Py_ssize_t rather than C int for the number of function
positional and keyword arguments.
2016-08-25 00:04:09 +02:00
Victor Stinner
b900939186
_PyFunction_FastCallDict() supports keyword args
...
Issue #27809 :
* Rename _PyFunction_FastCall() to _PyFunction_FastCallDict()
* Rename _PyCFunction_FastCall() to _PyCFunction_FastCallDict()
* _PyFunction_FastCallDict() now supports keyword arguments
2016-08-22 23:15:44 +02:00
Victor Stinner
559bb6a713
Rename _PyObject_FastCall() to _PyObject_FastCallDict()
...
Issue #27809 :
* Rename _PyObject_FastCall() function to _PyObject_FastCallDict()
* Add _PyObject_FastCall(), _PyObject_CallNoArg() and _PyObject_CallArg1()
macros calling _PyObject_FastCallDict()
2016-08-22 22:48:54 +02:00
Nick Coghlan
cbcd221de4
Merge #27782 fix from 3.5
2016-08-21 17:43:58 +10:00
Nick Coghlan
8682f578c1
Issue #27782 : Fix m_methods handling in multiphase init
...
Multi-phase extension module import now correctly allows the
``m_methods`` field to be used to add module level functions
to instances of non-module types returned from ``Py_create_mod``.
Patch by Xiang Zhang.
2016-08-21 17:41:56 +10:00
Martin Panter
8fbab9f163
Merge spelling fixes from 3.5
2016-08-20 08:26:16 +00:00
Martin Panter
d210a70dd9
Minor spelling fixes
2016-08-20 08:03:06 +00:00
Victor Stinner
8a31c82093
Fix PyObject_Call() parameter names
...
Issue #27128 : arg=>args, kw=>kwargs.
Same change for PyEval_CallObjectWithKeywords().
2016-08-19 17:12:23 +02:00
Victor Stinner
9be7e7b52f
Add _PyObject_FastCall()
...
Issue #27128 : Add _PyObject_FastCall(), a new calling convention avoiding a
temporary tuple to pass positional parameters in most cases, but create a
temporary tuple if needed (ex: for the tp_call slot).
The API is prepared to support keyword parameters, but the full implementation
will come later (_PyFunction_FastCall() doesn't support keyword parameters
yet).
Add also:
* _PyStack_AsTuple() helper function: convert a "stack" of parameters to
a tuple.
* _PyCFunction_FastCall(): fast call implementation for C functions
* _PyFunction_FastCall(): fast call implementation for Python functions
2016-08-19 16:11:43 +02:00
Ned Deily
ac7974f778
Start 3.6.0bb1
2016-08-15 22:32:43 -04:00
Ned Deily
b87d6000f3
Version bump for 3.6.0a4
2016-08-15 16:21:29 -04:00
Guido van Rossum
0a891d70de
Issue #12345 : Add mathemathcal constant tau to math and cmath.
...
Patch by Lisa Roach. See also PEP 628.
2016-08-15 09:12:52 -07:00
Ned Deily
6349612a8e
Issue #10910 : merge from 3.5
2016-08-15 03:23:23 -04:00
Ned Deily
3d4559936a
Issue #10910 : Update FreedBSD version checks for the ctype UTF-8 workaround.
...
The original problem has been fixed in newer versions of FreeBSD.
Patch by Dimitry Andric of the FreeBSD project.
2016-08-15 03:08:18 -04:00
Ned Deily
7659aab5e9
Issue #10910 : Avoid C++ compilation errors on FreeBSD and OS X.
...
Patch by Ronald Oussoren.
2016-08-15 03:07:26 -04:00
Serhiy Storchaka
9171a8b4ce
Issue #27574 : Decreased an overhead of parsing keyword arguments in functions
...
implemented with using Argument Clinic.
2016-08-14 10:52:18 +03:00
Martin Panter
02b75abf73
Merge spelling and grammar fixes from 3.5
2016-08-05 01:51:39 +00:00
Martin Panter
69332c1a64
Fix spelling and grammar in documentation and code comments
2016-08-04 13:07:31 +00:00
Serhiy Storchaka
133138a284
Issue #22557 : Now importing already imported modules is up to 2.5 times faster.
2016-08-02 22:51:21 +03:00
Martin Panter
8bde911115
Issue #27626 : Merge spelling fixes from 3.5
2016-07-28 01:30:58 +00:00
Martin Panter
eb9957065a
Issue #27626 : Spelling fixes in docs, comments and internal names
...
Based on patch by Ville Skyttä.
2016-07-28 01:11:04 +00:00
Alexander Belopolsky
5d0c598382
Closes issue #24773 : Implement PEP 495 (Local Time Disambiguation).
2016-07-22 18:47:04 -04:00
Ned Deily
b209392b0e
Start 3.6.0a4
2016-07-12 01:14:53 -04:00
Ned Deily
a731a68cf6
Version bump for 3.6.0a3
2016-07-11 15:38:40 -04:00
Larry Hastings
9bb2005459
Post-release fixups for Python 3.5.2.
2016-06-26 19:47:22 -07:00
Larry Hastings
6c1aa6ba30
Version number bump for 3.5.2 final.
2016-06-25 14:11:09 -07:00
Ned Deily
8a43f727a4
Start 3.6.0a3
2016-06-13 23:46:45 -04:00
Ned Deily
fa42893546
Version bump for 3.6.0a2
2016-06-13 16:54:49 -04:00
Larry Hastings
6e9a96be9e
Post-release fixups for Python 3.5.2rc1.
2016-06-12 20:22:18 -07:00
Serhiy Storchaka
64204de04c
Issue #27095 : Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes.
...
Patch by Demur Rumed.
2016-06-12 17:36:24 +03:00
Larry Hastings
d31a255f32
Release bump for 3.5.2rc1.
2016-06-11 20:51:22 -07:00
Serhiy Storchaka
6a7506a77f
Issue #27140 : Added BUILD_CONST_KEY_MAP opcode.
2016-06-12 00:39:41 +03:00
Yury Selivanov
711d25db48
Merge 3.5 (issue #27243 )
2016-06-09 15:13:16 -04:00
Yury Selivanov
a6f6edbda8
Issue #27243 : Fix __aiter__ protocol
2016-06-09 15:08:31 -04:00
Ethan Furman
410ef8e230
issue27186: add C version of os.fspath(); patch by Jelle Zijlstra
2016-06-04 12:06:26 -07:00
Benjamin Peterson
f22e360895
merge 3.5
2016-06-03 22:38:10 -07:00
Benjamin Peterson
3da82067c7
fix indentation of comment
2016-06-03 22:37:48 -07:00
Martin Panter
0b7d84de6b
Issue #27171 : Merge typo fixes from 3.5
2016-06-02 10:11:18 +00:00
Martin Panter
e26da7c03a
Issue #27171 : Fix typos in documentation, comments, and test function names
2016-06-02 10:07:09 +00:00
Stefan Krah
1f9eb879d5
Issue #26857 : The gethostbyaddr_r() workaround is no longer needed with
...
api-level >= 23. Patch by Xavier de Gaye.
2016-05-22 17:35:34 +02:00
Ned Deily
786ed5537c
Post-release cleanup: 3.6.0a1 -> 3.6.0a2
2016-05-17 16:55:41 -04:00
Ned Deily
cec00a7d87
Version bump for 3.6.0a1
2016-05-16 16:03:51 -04:00
Martin Panter
1ce738e08f
Merge typo fixes from 3.5
2016-05-08 14:02:35 +00:00
Martin Panter
4c35964b76
Corrections for a/an in code comments and documentation
2016-05-08 13:53:41 +00:00
Serhiy Storchaka
dd40fc3e57
Issue #26765 : Moved common code and docstrings for bytes and bytearray methods
...
to bytes_methods.c.
2016-05-04 22:23:26 +03:00
Serhiy Storchaka
b608196b20
Fixed declarations of _Py_DumpTraceback() and _Py_DumpTracebackThreads().
2016-05-01 13:07:14 +03:00
Serhiy Storchaka
f5f37d784b
Fixed declarations of _Py_DumpTraceback() and _Py_DumpTracebackThreads().
2016-05-01 13:06:43 +03:00
Serhiy Storchaka
b6a9c9761c
Issue #26778 : Fixed "a/an/and" typos in code comment, documentation and error
...
messages.
2016-04-17 09:39:28 +03:00
Serhiy Storchaka
6a7b3a77b4
Issue #26778 : Fixed "a/an/and" typos in code comment and documentation.
2016-04-17 08:32:47 +03:00
Martin Panter
cda80940ed
Issue #15984 : Merge PyUnicode doc from 3.5
2016-04-15 02:27:11 +00:00
Martin Panter
20d325574e
Issue #15984 : Correct PyUnicode_FromObject() and _FromEncodedObject() docs
2016-04-15 00:56:21 +00:00
Martin Panter
6245cb3c01
Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc
...
This affects documentation, code comments, and a debugging messages.
2016-04-15 02:14:19 +00:00
Serhiy Storchaka
f01e408c16
Issue #26200 : Added Py_SETREF and replaced Py_XSETREF with Py_SETREF
...
in places where Py_DECREF was used.
2016-04-10 18:12:01 +03:00