Commit Graph

379 Commits

Author SHA1 Message Date
Brett Cannon bc2eff3112 PyImport_Import was using the old import hack of sticking a dummy value into
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.
2010-09-19 21:39:02 +00:00
Nick Coghlan cd419abe42 Fix incorrect comment regarding MAGIC and TAG in import.c 2010-09-11 00:39:25 +00:00
Benjamin Peterson 6246d6dcb0 bump magic number for DELETE_DEREF 2010-09-10 21:51:44 +00:00
Daniel Stutzbach c7937791a1 Fix Issue #9752: MSVC compiler warning due to undefined function
(Patch by Jon Anglin)
2010-09-09 21:18:04 +00:00
Antoine Pitrou 74a69fa662 Issue #9225: Remove the ROT_FOUR and DUP_TOPX opcode, the latter replaced
by the new (and simpler) DUP_TOP_TWO.  Performance isn't changed, but
our bytecode is a bit simplified.  Patch by Demur Rumed.
2010-09-04 18:43:52 +00:00
Victor Stinner 6b06da5395 Remove unused functions _PyImport_FindModule and _PyImport_IsScript 2010-08-17 22:54:21 +00:00
Victor Stinner f52b705be4 Create _Py_fopen() for PyUnicodeObject path
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.
2010-08-14 17:06:04 +00:00
Victor Stinner 8a79dccc48 _Py_stat(): ensure that path ends with a nul character 2010-08-14 16:59:08 +00:00
Victor Stinner 4f4402c4bb Issue #9425: Create private _Py_stat() function
Use stat() or _wstat() depending on the OS.
2010-08-14 14:50:26 +00:00
Victor Stinner 1a4d12d746 Issue #9425: NullImporter constructor is fully unicode compliant
* On non-Windows OSes: the constructor accepts bytes filenames
   and use surrogateescape for unicode filenames
 * On Windows: use GetFileAttributesW() instead of GetFileAttributesA()
2010-08-13 13:07:29 +00:00
Victor Stinner 44c6c155d6 Issue #9425: Create load_builtin() subfunction
Just move the code and some variables.
2010-08-09 00:59:10 +00:00
Benjamin Peterson 556d8001df Merged revisions 81380 via svnmerge from
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.
........
2010-06-27 22:37:28 +00:00
Barry Warsaw 7c9627b4de Typo repair. 2010-06-17 18:38:20 +00:00
Victor Stinner ae6265f8d0 Issue #8715: Create PyUnicode_EncodeFSDefault() function: Encode a Unicode
object to Py_FileSystemDefaultEncoding with the "surrogateescape" error
handler, return a bytes object. If Py_FileSystemDefaultEncoding is not set,
fall back to UTF-8.
2010-05-15 16:27:27 +00:00
Antoine Pitrou f95a1b3c53 Recorded merge of revisions 81029 via svnmerge from
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.
........
2010-05-09 15:52:27 +00:00
Barry Warsaw 28a691b7fd PEP 3147 2010-04-17 00:19:56 +00:00
Benjamin Peterson fa0aebacd9 Merged revisions 79428 via svnmerge from
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
........
2010-03-25 23:30:20 +00:00
Victor Stinner 3f1af5c42e Issue #6697: use %U format instead of _PyUnicode_AsString(), because
_PyUnicode_AsString() was not checked for error (NULL).

The unicode string is no more truncated to 200 or 400 *bytes*.
2010-03-12 17:00:41 +00:00
Victor Stinner 52f6dd7a3d Merged revisions 78826 via svnmerge from
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.
........
2010-03-12 14:45:56 +00:00
Gregory P. Smith 24cec9fe07 Merged revisions 78527,78550 via svnmerge from
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.
........
2010-03-01 06:18:41 +00:00
Brett Cannon 9a5b25a3ef Strip out trailing whitespace. 2010-03-01 02:09:17 +00:00
Benjamin Peterson 0f6cae0bff remove magic number bumping from the 2.x -U option #7459 2009-12-10 02:09:08 +00:00
Benjamin Peterson 0df35a93a2 Merged revisions 74841 via svnmerge from
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.
........
2009-10-04 20:32:25 +00:00
Alexandre Vassalotti e223eb8477 Merged revisions 74075,74187,74197,74201,74216,74225 via svnmerge from
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.
........
2009-07-29 20:12:15 +00:00
Alexandre Vassalotti 9d58e3eb02 Merged revisions 73870,73879,73899-73900,73905-73906 via svnmerge from
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).
........
2009-07-17 10:55:50 +00:00
Benjamin Peterson 876b2f286b Merged revisions 72912,72920,72940 via svnmerge from
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
........
2009-06-28 03:18:59 +00:00
Brett Cannon a826f32054 Merged revisions 71031 via svnmerge from
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.
........
2009-04-02 03:41:46 +00:00
Kristján Valur Jónsson 92af5d9fec Fix a leaking "pathname" in import.c 2009-03-31 17:47:50 +00:00
Kristján Valur Jónsson e1b0445ff9 get_file() no longer leaks a FILE structure. If given a file descriptor, it 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.
2009-03-31 17:43:39 +00:00
Guido van Rossum 0ad59d467d Issue #5604: non-ASCII characters in module name passed to
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.)
2009-03-30 22:01:35 +00:00
Brett Cannon 8d11013169 Implement InspectLoader for FrozenImporter. 2009-03-15 02:20:16 +00:00
Brett Cannon 3c2ac448ec Fix a typo in a comment. 2009-03-08 20:49:47 +00:00
Hirokazu Yamamoto 4f447fb9a1 Issue #5273: Fixed import failure on unicode path. (especially on windows) 2009-03-04 01:52:10 +00:00
Jeffrey Yasskin 9de7ec7868 http://bugs.python.org/issue4715
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
2009-02-25 02:25:04 +00:00
Mark Dickinson e94c679df0 Issue #1717: rename tp_compare to tp_reserved. I'll change the
type of tp_compare in a separate commit, for ease of reversion
should things go wrong.
2009-02-02 20:36:42 +00:00
Hirokazu Yamamoto 90eaaf623a Issue #5041: Fixed memory leak. 2009-01-30 03:15:05 +00:00
Kristján Valur Jónsson 92cb438448 Issue 3677: Release the path string on py3k 2009-01-24 10:33:25 +00:00
Hirokazu Yamamoto 21cbf5f896 Merged revisions 68457 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68457 | kristjan.jonsson | 2009-01-10 05:10:59 +0900 | 1 line

  Issue 3677:  Fix import from UNC paths on Windows.
........
2009-01-23 07:23:03 +00:00
Antoine Pitrou d35cbf6e61 Merged revisions 68360-68361 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68360 | antoine.pitrou | 2009-01-06 19:10:47 +0100 (mar., 06 janv. 2009) | 7 lines

  Issue #1180193: When importing a module from a .pyc (or .pyo) file with
  an existing .py counterpart, override the co_filename attributes of all
  code objects if the original filename is obsolete (which can happen if the
  file has been renamed, moved, or if it is accessed through different paths).
  Patch by Ziga Seilnacht and Jean-Paul Calderone.
........
  r68361 | antoine.pitrou | 2009-01-06 19:34:08 +0100 (mar., 06 janv. 2009) | 3 lines

  Use shutil.rmtree rather than os.rmdir.
........
2009-01-06 19:02:24 +00:00
Martin v. Löwis ffe431d8bd Merged revisions 68203 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68203 | martin.v.loewis | 2009-01-03 18:19:26 +0100 (Sa, 03 Jan 2009) | 2 lines

  Issue #4817: Remove unused function PyOS_GetLastModificationTime.
........
2009-01-03 17:22:40 +00:00
Antoine Pitrou f289ae6f01 Merged revisions 67818 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67818 | antoine.pitrou | 2008-12-17 01:38:28 +0100 (mer., 17 déc. 2008) | 3 lines

  Issue #2183: Simplify and optimize bytecode for list comprehensions.
........
2008-12-18 11:06:25 +00:00
Amaury Forgeot d'Arc 9a5499b4e5 #3705: Command-line arguments were not correctly decoded when the
terminal does not use UTF8.

Now the code propagates the unicode string as far as possible, and avoids
the conversion to char* which implicitely uses utf-8.

Reviewed by Benjamin.
2008-11-11 23:04:59 +00:00
Benjamin Peterson d968e27581 fix #4211: the __path__ of a frozen package should be a list.
Patch by Brett Cannon, review by Christian Heimes.
2008-11-05 22:48:33 +00:00
Amaury Forgeot d'Arc 8530e8590f Revert r33661, which broke all buildbots. 2008-09-09 07:28:22 +00:00
Amaury Forgeot d'Arc 14b785192b #3705: Fix crash when given a non-ascii value on the command line for the "-c" and "-m" parameters
Second part, for Windows.

Reviewed by Antoine Pitrou
2008-09-09 07:04:36 +00:00
Amaury Forgeot d'Arc 1b933ed50a #3773: Check for errors around the use of PyTokenizer_FindEncoding().
reviewed by Brett Cannon.
2008-09-04 22:34:09 +00:00
Benjamin Peterson ad9565338c Fix a memory leak in reloading extension modules #3667
Reviewer: Barry Warsaw
2008-09-04 02:28:15 +00:00
Benjamin Peterson 3e4f055602 Merged revisions 66045,66048-66049,66053,66060,66062-66063,66065,66067,66071-66074,66080,66082-66083,66090-66093,66097-66099,66103,66105,66110,66118 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r66045 | andrew.kuchling | 2008-08-26 19:27:18 -0500 (Tue, 26 Aug 2008) | 1 line

  Trim whitespace; add a few updates
........
  r66048 | andrew.kuchling | 2008-08-26 19:45:02 -0500 (Tue, 26 Aug 2008) | 1 line

  Add an item and a note
........
  r66049 | andrew.kuchling | 2008-08-26 21:12:18 -0500 (Tue, 26 Aug 2008) | 1 line

  Add various items
........
  r66053 | georg.brandl | 2008-08-28 04:40:18 -0500 (Thu, 28 Aug 2008) | 2 lines

  #3711: .dll isn't a valid Python extension anymore.
........
  r66060 | armin.rigo | 2008-08-29 16:21:52 -0500 (Fri, 29 Aug 2008) | 3 lines

  A collection of crashers, all variants of the idea
  of issue #3720.
........
  r66062 | georg.brandl | 2008-08-30 04:49:36 -0500 (Sat, 30 Aug 2008) | 2 lines

  #3730: mention "server" attribute explicitly.
........
  r66063 | georg.brandl | 2008-08-30 04:52:44 -0500 (Sat, 30 Aug 2008) | 2 lines

  #3716: fix typo.
........
  r66065 | georg.brandl | 2008-08-30 05:03:09 -0500 (Sat, 30 Aug 2008) | 2 lines

  #3569: eval() also accepts "exec"able code objects.
........
  r66067 | georg.brandl | 2008-08-30 08:17:39 -0500 (Sat, 30 Aug 2008) | 2 lines

  super() actually returns a super object.
........
  r66071 | andrew.kuchling | 2008-08-30 10:19:57 -0500 (Sat, 30 Aug 2008) | 1 line

  Partial edits from revision and tidying pass
........
  r66072 | andrew.kuchling | 2008-08-30 10:21:23 -0500 (Sat, 30 Aug 2008) | 1 line

  Tidy up some sentences
........
  r66073 | andrew.kuchling | 2008-08-30 10:25:47 -0500 (Sat, 30 Aug 2008) | 1 line

  Correction from Antoine Pitrou: BufferedWriter and Reader support seek()
........
  r66074 | andrew.kuchling | 2008-08-30 11:44:54 -0500 (Sat, 30 Aug 2008) | 1 line

  Edit four more sections
........
  r66080 | georg.brandl | 2008-08-30 17:00:28 -0500 (Sat, 30 Aug 2008) | 2 lines

  Fix markup.
........
  r66082 | andrew.kuchling | 2008-08-30 17:56:54 -0500 (Sat, 30 Aug 2008) | 1 line

  More edits; markup fixes
........
  r66083 | andrew.kuchling | 2008-08-30 21:24:08 -0500 (Sat, 30 Aug 2008) | 1 line

  More edits
........
  r66090 | andrew.kuchling | 2008-08-31 09:29:31 -0500 (Sun, 31 Aug 2008) | 1 line

  Edit the library section, rearranging items to flow better and making lots of edits
........
  r66091 | andrew.kuchling | 2008-08-31 10:41:48 -0500 (Sun, 31 Aug 2008) | 1 line

  Last batch of edits; remove the 'other changes' section
........
  r66092 | andrew.kuchling | 2008-08-31 10:48:44 -0500 (Sun, 31 Aug 2008) | 1 line

  Update patch/bug count
........
  r66093 | gregory.p.smith | 2008-08-31 11:34:18 -0500 (Sun, 31 Aug 2008) | 3 lines

  issue3715: docstring representation of hex escaped string needs to be double
  escaped.
........
  r66097 | benjamin.peterson | 2008-09-01 09:13:43 -0500 (Mon, 01 Sep 2008) | 4 lines

  #3703 unhelpful _fileio.FileIO error message when trying to open a directory

  Reviewer: Gregory P. Smith
........
  r66098 | georg.brandl | 2008-09-01 09:15:55 -0500 (Mon, 01 Sep 2008) | 2 lines

  #3749: fix c'n'p errors.
........
  r66099 | benjamin.peterson | 2008-09-01 09:18:30 -0500 (Mon, 01 Sep 2008) | 4 lines

  Fix compilation when --without-threads is given #3683

  Reviewer: Georg Brandl, Benjamin Peterson
........
  r66103 | vinay.sajip | 2008-09-01 09:30:10 -0500 (Mon, 01 Sep 2008) | 1 line

  logging: fixed lack of use of encoding attribute specified on a stream.
........
  r66105 | vinay.sajip | 2008-09-01 09:33:59 -0500 (Mon, 01 Sep 2008) | 1 line

  logging: fixed lack of use of encoding attribute specified on a stream.
........
  r66110 | vinay.sajip | 2008-09-01 10:08:07 -0500 (Mon, 01 Sep 2008) | 1 line

  Added section about configuring logging in a library. Thanks to Thomas Heller for the idea.
........
  r66118 | vinay.sajip | 2008-09-01 12:44:14 -0500 (Mon, 01 Sep 2008) | 1 line

  Bug #3738: Documentation is now more accurate in describing handler close methods.
........
2008-09-02 00:31:15 +00:00
Marc-André Lemburg 4cc0f24857 Rename PyUnicode_AsString -> _PyUnicode_AsString and
PyUnicode_AsStringAndSize -> _PyUnicode_AsStringAndSize to mark
them for interpreter internal use only.

We'll have to rework these APIs or create new ones for the
purpose of accessing the UTF-8 representation of Unicode objects
for 3.1.
2008-08-07 18:54:33 +00:00
Georg Brandl 8494d573b9 #3368: free string allocated by "es" ParseTuple format. 2008-07-19 10:13:15 +00:00