1. 05 Ara, 2017 5 kayıt (commit)
  2. 04 Ara, 2017 7 kayıt (commit)
  3. 03 Ara, 2017 5 kayıt (commit)
    • R. David Murray's avatar
      bpo-27240 Rewrite the email header folding algorithm. (#3488) · 85d5c18c
      R. David Murray yazdı
      The original algorithm tried to delegate the folding to the tokens so
      that those tokens whose folding rules differed could specify the
      differences.  However, this resulted in a lot of duplicated code because
      most of the rules were the same.
      
      The new algorithm moves all folding logic into a set of functions
      external to the token classes, but puts the information about which
      tokens can be folded in which ways on the tokens...with the exception of
      mime-parameters, which are a special case (which was not even
      implemented in the old folder).
      
      This algorithm can still probably be improved and hopefully simplified
      somewhat.
      
      Note that some of the test expectations are changed.  I believe the
      changes are toward more desirable and consistent behavior: in general
      when (re) folding a line the canonical version of the tokens is
      generated, rather than preserving errors or extra whitespace.
      85d5c18c
    • Serhiy Storchaka's avatar
    • Serhiy Storchaka's avatar
      bpo-32137: The repr of deeply nested dict now raises a RecursionError (#4570) · 1fb72d2a
      Serhiy Storchaka yazdı
      instead of crashing due to a stack overflow.
      
      This perhaps will fix similar problems in other extension types.
      1fb72d2a
    • Neil Schemenauer's avatar
      Refactor PyImport_ImportModuleLevelObject(). (#4680) · eea3cc1e
      Neil Schemenauer yazdı
      Add import_find_and_load() helper function.  The addition of
      the importtime option has made PyImport_ImportModuleLevelObject() large
      and so using a helper seems worthwhile.  It also makes it clearer that
      abs_name is the only argument needed by _find_and_load().
      eea3cc1e
    • Nick Coghlan's avatar
      bpo-32176: Set CO_NOFREE in the code object constructor (GH-4675) · 078f1814
      Nick Coghlan yazdı
      Previously, CO_NOFREE was set in the compiler, which meant
      it could end up being set incorrectly when code objects
      were created directly. Setting it in the constructor based
      on freevars and cellvars ensures it is always accurate,
      regardless of how the code object is defined.
      078f1814
  4. 02 Ara, 2017 4 kayıt (commit)
    • Julien Palard's avatar
      bpo-31589 : Build PDF using xelatex for better UTF8 support. (#3940) · 7324b5ce
      Julien Palard yazdı
      Also addresses doc build failures documented in bpo-32200.
      7324b5ce
    • Neil Schemenauer's avatar
      Add a minimal unit test for Python/frozen.c. (#2995) · 1eaa1169
      Neil Schemenauer yazdı
      If the marshal or bytecode formats get changed, frozen.c needs to
      be updated as well.  It can be easy to miss this step and not doing
      so can cause test_importlib to crash in mysterious ways.  Add an
      explict unit test to make it easier to track down the problem.
      1eaa1169
    • Serhiy Storchaka's avatar
      bpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. (#4681) · 13badcbc
      Serhiy Storchaka yazdı
      * Revert "bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)"
      
      This reverts commit af5a8950.
      
      * Revert "bpo-32030: Fix config_get_program_name() on macOS (#4669)"
      
      This reverts commit e23c06e2.
      
      * Revert "bpo-32030: Add Python/pathconfig.c (#4668)"
      
      This reverts commit 0ea395ae.
      
      * Revert "bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)"
      
      This reverts commit ebac19da.
      
      * Revert "bpo-32030: Fix Py_GetPath(): init program_name (#4665)"
      
      This reverts commit 9ac3d888.
      13badcbc
    • Victor Stinner's avatar
      bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673) · af5a8950
      Victor Stinner yazdı
      _PyPathConfig_Init() now also initialize home and program_name:
      
      * Rename existing _PyPathConfig_Init() to _PyPathConfig_Calculate().
        Add a new _PyPathConfig_Init() function in pathconfig.c which
        handles the _Py_path_config variable and call
        _PyPathConfig_Calculate().
      * Add home and program_name fields to _PyPathConfig.home
      * _PyPathConfig_Init() now initialize home and program_name
        from main_config
      * Py_SetProgramName(), Py_SetPythonHome() and Py_GetPythonHome() now
        calls Py_FatalError() on failure, instead of silently ignoring
        failures.
      * config_init_home() now gets directly _Py_path_config.home to only
        get the value set by Py_SetPythonHome(), or NULL if
        Py_SetPythonHome() was not called.
      * config_get_program_name() now gets directly
        _Py_path_config.program_name to only get the value set by
        Py_SetProgramName(), or NULL if Py_SetProgramName() was not called.
      * pymain_init_python() doesn't call Py_SetProgramName() anymore,
        _PyPathConfig_Init() now always sets the program name
      * Call _PyMainInterpreterConfig_Read() in
        pymain_parse_cmdline_envvars_impl() to control the memory allocator
      * C API documentation: it's no more safe to call Py_GetProgramName()
        before Py_Initialize().
      af5a8950
  5. 01 Ara, 2017 10 kayıt (commit)
    • Victor Stinner's avatar
    • Victor Stinner's avatar
      bpo-32030: Add Python/pathconfig.c (#4668) · 0ea395ae
      Victor Stinner yazdı
      * Factorize code from PC/getpathp.c and Modules/getpath.c to remove
        duplicated code
      * rename pathconfig_clear() to _PyPathConfig_Clear()
      * Inline _PyPathConfig_Fini() in pymain_impl() and then remove it,
        since it's a oneliner
      0ea395ae
    • Victor Stinner's avatar
      bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667) · ebac19da
      Victor Stinner yazdı
      Changes:
      
      * _PyPathConfig_Fini() cannot be called in Py_FinalizeEx().
        Py_Initialize() and Py_Finalize() can be called multiple times, but
        it must not "forget" parameters set by Py_SetProgramName(),
        Py_SetPath() or Py_SetPythonHome(), whereas _PyPathConfig_Fini()
        clear all these parameters.
      * config_get_program_name() and calculate_program_full_path() now
        also decode paths using Py_DecodeLocale() to use the
        surrogateescape error handler, rather than decoding using
        mbstowcs() which is strict.
      * Change _Py_CheckPython3() prototype: () => (void)
      * Truncate a few lines which were too long
      ebac19da
    • Victor Stinner's avatar
      bpo-32030: Fix Py_GetPath(): init program_name (#4665) · 9ac3d888
      Victor Stinner yazdı
      * _PyMainInterpreterConfig_ReadEnv() now sets program_name from
        environment variables and pymain_parse_envvars() implements the
        falls back on argv[0].
      * Remove _PyMain.program_name: use the program_name from
        _PyMainInterpreterConfig
      * Move the Py_SetProgramName() call back to pymain_init_python(),
        just before _Py_InitializeCore().
      * pathconfig_global_init() now also calls
        _PyMainInterpreterConfig_Read() to set program_name if it isn't set
        yet
      * Cleanup PyCalculatePath: pass main_config to subfunctions to get
        directly fields from main_config (home, module_search_path_env and
        program_name)
      9ac3d888
    • Victor Stinner's avatar
      bpo-32030: Cleanup "path config" code (#4663) · b64de46a
      Victor Stinner yazdı
      * Rename PyPathConfig structure to _PyPathConfig and move it to
        Include/internal/pystate.h
      * Rename path_config to _Py_path_config
      * _PyPathConfig: Rename program_name field to program_full_path
      * Add assert(str != NULL); to _PyMem_RawWcsdup(), _PyMem_RawStrdup()
        and _PyMem_Strdup().
      * Rename calculate_path() to pathconfig_global_init(). The function
        now does nothing if it's already initiallized.
      b64de46a
    • John Chen's avatar
    • xdegaye's avatar
      bpo-28668: test.support.requires_multiprocessing_queue is removed (GH-4560) · bf2b65e4
      xdegaye yazdı
      Skip tests with test.support.import_module('multiprocessing.synchronize')
      instead when the semaphore implementation is broken or missing.
      bf2b65e4
    • Serhiy Storchaka's avatar
    • Serhiy Storchaka's avatar
      bpo-10544: Deprecate "yield" in comprehensions and generator expressions. (GH-4579) · 73a7e9b1
      Serhiy Storchaka yazdı
      The current behaviour of yield expressions inside comprehensions  and
      generator expressions is essentially an accident of implementation - it
      arises implicitly from the way the compiler handles yield expressions inside
      nested functions and generators.
      
      Since the current behaviour wasn't deliberately designed, and is inherently
      confusing, we're deprecating it, with no current plans to reintroduce it.
      Instead, our advice will be to use a named nested generator definition
      for cases where this behaviour is desired.
      73a7e9b1
    • Nir Soffer's avatar
      bpo-32186: Release the GIL during lseek and fstat (#4652) · 6a894816
      Nir Soffer yazdı
      In _io_FileIO_readall_impl(), lseek() and _Py_fstat_noraise() were called
      without releasing the GIL. This can cause all threads to hang for
      unlimited time when calling FileIO.read() and the NFS server is not
      accessible.
      6a894816
  6. 30 Kas, 2017 9 kayıt (commit)