summaryrefslogtreecommitdiffstats
path: root/Python/import.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branches/pep-0384.Martin v. Löwis2010-12-031-1/+1
|
* import: use PyUnicode_FSConverter to support bytes path and PEP 383Victor Stinner2010-12-031-28/+30
| | | | (instead of PyArg_Parse*() with "es" format and Py_FileSystemDefaultEncoding)
* Issue #9573: os.fork now works when triggered as a side effect of import ↵Nick Coghlan2010-12-021-2/+11
| | | | (the wisdom of actually relying on this remains questionable!)
* Remove redundant includes of headers that are already included by Python.h.Georg Brandl2010-11-301-4/+0
|
* Issue #10359: Remove ";" after function definition, invalid in ISO CVictor Stinner2010-11-091-1/+1
|
* find_module(): use FS encoding to display the missing __init__ warningVictor Stinner2010-10-171-7/+9
|
* _PyImport_FixupExtension() and _PyImport_FindExtension() uses FS encodingVictor Stinner2010-10-171-10/+34
| | | | | | | * Rename _PyImport_FindExtension() to _PyImport_FindExtensionUnicode(): the filename becomes a Unicode object instead of byte string * Rename _PyImport_FixupExtension() to _PyImport_FixupExtensionUnicode(): the filename becomes a Unicode object instead of byte string
* fix refleakBenjamin Peterson2010-10-161-4/+6
|
* Fix imp_cache_from_source(): Decode make_compiled_pathname() result from theVictor Stinner2010-10-151-1/+1
| | | | | | | filesystem encoding instead of utf-8. imp_cache_from_source() encodes the input path to filesystem encoding and this path is passed to make_compiled_pathname().
* imp_load_module() uses PyUnicode_FSConverter() to support surrogates in moduleVictor Stinner2010-10-151-7/+7
| | | | path
* imp.cache_from_source() uses PyUnicode_FSConverter() to support surrogates inVictor Stinner2010-10-151-5/+8
| | | | module path
* imp.load_dynamic() uses PyUnicode_FSConverter() to support surrogatesVictor Stinner2010-10-151-6/+6
| | | | in the library path.
* Create fileutils.c/.hVictor Stinner2010-10-071-65/+0
| | | | | | | * _Py_fopen() and _Py_stat() come from Python/import.c * (_Py)_wrealpath() comes from Python/sysmodule.c * _Py_char2wchar(), _Py_wchar2char() and _Py_wfopen() come from Modules/main.c * (_Py)_wstat(), (_Py)_wgetcwd(), _Py_wreadlink() come from Modules/getpath.c
* PyUnicode_AsWideCharString() takes a PyObject*, not a PyUnicodeObject*Victor Stinner2010-10-071-3/+3
| | | | | All unicode functions uses PyObject* except PyUnicode_AsWideChar(). Fix the prototype for the new function PyUnicode_AsWideCharString().
* Remove an unreferenced variable. len is no longer needed.Brian Curtin2010-09-291-1/+0
|
* Issue #9979: Use PyUnicode_AsWideCharString() in import.cVictor Stinner2010-09-291-18/+16
| | | | | Don't truncate path if it is too long anymore, and allocate fewer memory (but allocate it on the heap, not on the stack).
* PyImport_Import was using the old import hack of sticking a dummy value intoBrett Cannon2010-09-191-3/+13
| | | | | | | fromlist to get __import__ to return the module desired. Now it uses the proper approach of fetching the module from sys.modules. Closes issue #9252. Thanks to Alexander Belopolsky for the bug report.
* Fix incorrect comment regarding MAGIC and TAG in import.cNick Coghlan2010-09-111-2/+5
|
* bump magic number for DELETE_DEREFBenjamin Peterson2010-09-101-1/+2
|
* Fix Issue #9752: MSVC compiler warning due to undefined functionDaniel Stutzbach2010-09-091-4/+7
| | | | (Patch by Jon Anglin)
* Issue #9225: Remove the ROT_FOUR and DUP_TOPX opcode, the latter replacedAntoine Pitrou2010-09-041-1/+3
| | | | | by the new (and simpler) DUP_TOP_TWO. Performance isn't changed, but our bytecode is a bit simplified. Patch by Demur Rumed.
* Remove unused functions _PyImport_FindModule and _PyImport_IsScriptVictor Stinner2010-08-171-16/+0
|
* Create _Py_fopen() for PyUnicodeObject pathVictor Stinner2010-08-141-0/+33
| | | | | | Call _wfopen() on Windows, or fopen() otherwise. Return the new file object on success, or NULL if the file cannot be open or (if PyErr_Occurred()) on unicode error.
* _Py_stat(): ensure that path ends with a nul characterVictor Stinner2010-08-141-2/+3
|
* Issue #9425: Create private _Py_stat() functionVictor Stinner2010-08-141-0/+33
| | | | Use stat() or _wstat() depending on the OS.
* Issue #9425: NullImporter constructor is fully unicode compliantVictor Stinner2010-08-131-38/+52
| | | | | | * On non-Windows OSes: the constructor accepts bytes filenames and use surrogateescape for unicode filenames * On Windows: use GetFileAttributesW() instead of GetFileAttributesA()
* Issue #9425: Create load_builtin() subfunctionVictor Stinner2010-08-091-30/+40
| | | | Just move the code and some variables.
* Merged revisions 81380 via svnmerge fromBenjamin Peterson2010-06-271-1/+2
| | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r81380 | brett.cannon | 2010-05-20 13:37:55 -0500 (Thu, 20 May 2010) | 8 lines Turned out that if you used explicit relative import syntax (e.g. from .os import sep) and it failed, import would still try the implicit relative import semantics of an absolute import (from os import sep). That's not right, so when level is negative, only do explicit relative import semantics. Fixes issue #7902. Thanks to Meador Inge for the patch. ........
* Typo repair.Barry Warsaw2010-06-171-4/+4
|
* Issue #8715: Create PyUnicode_EncodeFSDefault() function: Encode a UnicodeVictor Stinner2010-05-151-10/+2
| | | | | | object to Py_FileSystemDefaultEncoding with the "surrogateescape" error handler, return a bytes object. If Py_FileSystemDefaultEncoding is not set, fall back to UTF-8.
* Recorded merge of revisions 81029 via svnmerge fromAntoine Pitrou2010-05-091-2740/+2740
| | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines Untabify C files. Will watch buildbots. ........
* PEP 3147Barry Warsaw2010-04-171-28/+363
|
* Merged revisions 79428 via svnmerge fromBenjamin Peterson2010-03-251-2/+2
| | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r79428 | benjamin.peterson | 2010-03-25 18:27:16 -0500 (Thu, 25 Mar 2010) | 1 line make naming convention consistent ........
* Issue #6697: use %U format instead of _PyUnicode_AsString(), becauseVictor Stinner2010-03-121-2/+2
| | | | | | _PyUnicode_AsString() was not checked for error (NULL). The unicode string is no more truncated to 200 or 400 *bytes*.
* Merged revisions 78826 via svnmerge fromVictor Stinner2010-03-121-2/+0
| | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r78826 | victor.stinner | 2010-03-10 23:30:19 +0100 (mer., 10 mars 2010) | 5 lines Issue #3137: Don't ignore errors at startup, especially a keyboard interrupt (SIGINT). If an error occurs while importing the site module, the error is printed and Python exits. Initialize the GIL before importing the site module. ........
* Merged revisions 78527,78550 via svnmerge fromGregory P. Smith2010-03-011-4/+8
| | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r78527 | gregory.p.smith | 2010-02-28 17:22:39 -0800 (Sun, 28 Feb 2010) | 4 lines Issue #7242: On Solaris 9 and earlier calling os.fork() from within a thread could raise an incorrect RuntimeError about not holding the import lock. The import lock is now reinitialized after fork. ........ r78550 | gregory.p.smith | 2010-02-28 22:01:02 -0800 (Sun, 28 Feb 2010) | 2 lines Fix test to be skipped on windows. ........
* Strip out trailing whitespace.Brett Cannon2010-03-011-19/+19
|
* remove magic number bumping from the 2.x -U option #7459Benjamin Peterson2009-12-101-19/+11
|
* Merged revisions 74841 via svnmerge fromBenjamin Peterson2009-10-041-19/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r74841 | thomas.wouters | 2009-09-16 14:55:54 -0500 (Wed, 16 Sep 2009) | 23 lines Fix issue #1590864, multiple threads and fork() can cause deadlocks, by acquiring the import lock around fork() calls. This prevents other threads from having that lock while the fork happens, and is the recommended way of dealing with such issues. There are two other locks we care about, the GIL and the Thread Local Storage lock. The GIL is obviously held when calling Python functions like os.fork(), and the TLS lock is explicitly reallocated instead, while also deleting now-orphaned TLS data. This only fixes calls to os.fork(), not extension modules or embedding programs calling C's fork() directly. Solving that requires a new set of API functions, and possibly a rewrite of the Python/thread_*.c mess. Add a warning explaining the problem to the documentation in the mean time. This also changes behaviour a little on AIX. Before, AIX (but only AIX) was getting the import lock reallocated, seemingly to avoid this very same problem. This is not the right approach, because the import lock is a re-entrant one, and reallocating would do the wrong thing when forking while holding the import lock. Will backport to 2.6, minus the tiny AIX behaviour change. ........
* Merged revisions 74075,74187,74197,74201,74216,74225 via svnmerge fromAlexandre Vassalotti2009-07-291-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r74075 | georg.brandl | 2009-07-18 05:06:31 -0400 (Sat, 18 Jul 2009) | 1 line #6505: fix typos. ........ r74187 | benjamin.peterson | 2009-07-23 10:19:08 -0400 (Thu, 23 Jul 2009) | 1 line use bools for autoraise ........ r74197 | benjamin.peterson | 2009-07-24 22:03:48 -0400 (Fri, 24 Jul 2009) | 1 line clarify ........ r74201 | amaury.forgeotdarc | 2009-07-25 12:22:06 -0400 (Sat, 25 Jul 2009) | 2 lines Better name a variable: 'buf' seems to imply a mutable buffer. ........ r74216 | michael.foord | 2009-07-26 17:12:14 -0400 (Sun, 26 Jul 2009) | 1 line Issue 6581. Michael Foord ........ r74225 | kurt.kaiser | 2009-07-27 12:09:28 -0400 (Mon, 27 Jul 2009) | 5 lines 1. Clean workspace more thoughly before build. 2. Add url of branch we are building to 'results' webpage. (url is now available in $repo_path, could be added to failure email.) 3. Adjust permissions to improve upload reliability. ........
* Merged revisions 73870,73879,73899-73900,73905-73906 via svnmerge fromAlexandre Vassalotti2009-07-171-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r73870 | r.david.murray | 2009-07-06 21:06:13 -0400 (Mon, 06 Jul 2009) | 5 lines Issue 6070: when creating a compiled file, after copying the mode bits, on posix zap the execute bit in case it was set on the .py file, since the compiled files are not directly executable on posix. Patch by Marco N. ........ r73879 | r.david.murray | 2009-07-07 05:54:16 -0400 (Tue, 07 Jul 2009) | 3 lines Update issue 6070 patch to match the patch that was actually tested on Windows. ........ r73899 | r.david.murray | 2009-07-08 21:43:41 -0400 (Wed, 08 Jul 2009) | 3 lines Conditionalize test cleanup code to eliminate traceback, which will hopefully reveal the real problem. ........ r73900 | r.david.murray | 2009-07-08 22:06:17 -0400 (Wed, 08 Jul 2009) | 2 lines Make test work with -O. ........ r73905 | r.david.murray | 2009-07-09 09:55:44 -0400 (Thu, 09 Jul 2009) | 3 lines Specify umask in execute bit test to get consistent results and make sure we test resetting all three execute bits. ........ r73906 | r.david.murray | 2009-07-09 11:35:33 -0400 (Thu, 09 Jul 2009) | 5 lines Curdir needs to be in the path for the test to work on all buildbots. (I copied this from another import test, but currently this will fail if TESTFN ends up in /tmp...see issue 2609). ........
* Merged revisions 72912,72920,72940 via svnmerge fromBenjamin Peterson2009-06-281-1/+2
| | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r72912 | benjamin.peterson | 2009-05-25 08:13:44 -0500 (Mon, 25 May 2009) | 5 lines add a SETUP_WITH opcode It speeds up the with statement and correctly looks up the special methods involved. ........ r72920 | benjamin.peterson | 2009-05-25 15:12:57 -0500 (Mon, 25 May 2009) | 1 line take into account the fact that SETUP_WITH pushes a finally block ........ r72940 | benjamin.peterson | 2009-05-26 07:49:59 -0500 (Tue, 26 May 2009) | 1 line teach the peepholer about SETUP_WITH ........
* Merged revisions 71031 via svnmerge fromBrett Cannon2009-04-021-2/+2
| | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r71031 | brett.cannon | 2009-04-01 20:17:39 -0700 (Wed, 01 Apr 2009) | 6 lines PyImport_AppendInittab() took a char * as a first argument even though that string was stored beyond the life of the call. Changed the signature to be const char * to help make this point. Closes issue #1419652. ........
* Fix a leaking "pathname" in import.cKristján Valur Jónsson2009-03-311-0/+1
|
* get_file() no longer leaks a FILE structure. If given a file descriptor, it ↵Kristján Valur Jónsson2009-03-311-9/+19
| | | | | | calls dup() to get a new handle. Then both the FILE object and the fd can be closed. This is important, because otherwise, the leaked FILE object will be closed on process exit, causing assertions on Windows, e.g. in the test_multiprocessing.py regression test.
* Issue #5604: non-ASCII characters in module name passed toGuido van Rossum2009-03-301-16/+41
| | | | | | | | imp.find_module() were converted to UTF-8 while the path is converted to the default filesystem encoding, causing nonsense. Thanks to Andrew Svetlov. (This time to the right branch. Will block duplicate merge to 3.0.2.)
* Implement InspectLoader for FrozenImporter.Brett Cannon2009-03-151-0/+33
|
* Fix a typo in a comment.Brett Cannon2009-03-081-1/+1
|
* Issue #5273: Fixed import failure on unicode path. (especially on windows)Hirokazu Yamamoto2009-03-041-4/+6
|
* http://bugs.python.org/issue4715Jeffrey Yasskin2009-02-251-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch by Antoine Pitrou optimizes the bytecode for conditional branches by merging the following "POP_TOP" instruction into the conditional jump. For example, the list comprehension "[x for x in l if not x]" produced the following bytecode: 1 0 BUILD_LIST 0 3 LOAD_FAST 0 (.0) >> 6 FOR_ITER 23 (to 32) 9 STORE_FAST 1 (x) 12 LOAD_FAST 1 (x) 15 JUMP_IF_TRUE 10 (to 28) 18 POP_TOP 19 LOAD_FAST 1 (x) 22 LIST_APPEND 2 25 JUMP_ABSOLUTE 6 >> 28 POP_TOP 29 JUMP_ABSOLUTE 6 >> 32 RETURN_VALUE but after the patch it produces the following bytecode: 1 0 BUILD_LIST 0 3 LOAD_FAST 0 (.0) >> 6 FOR_ITER 18 (to 27) 9 STORE_FAST 1 (x) 12 LOAD_FAST 1 (x) 15 POP_JUMP_IF_TRUE 6 18 LOAD_FAST 1 (x) 21 LIST_APPEND 2 24 JUMP_ABSOLUTE 6 >> 27 RETURN_VALUE Notice that not only the code is shorter, but the conditional jump (POP_JUMP_IF_TRUE) jumps right to the start of the loop instead of going through the JUMP_ABSOLUTE at the end. "continue" statements are helped similarly. Furthermore, the old jump opcodes (JUMP_IF_FALSE, JUMP_IF_TRUE) have been replaced by two new opcodes: - JUMP_IF_TRUE_OR_POP, which jumps if true and pops otherwise - JUMP_IF_FALSE_OR_POP, which jumps if false and pops otherwise