cpython/PC
Nick Coghlan d5cacbb1d9 PEP 489: Multi-phase extension module initialization
Known limitations of the current implementation:

- documentation changes are incomplete
- there's a reference leak I haven't tracked down yet

The leak is most visible by running:

  ./python -m test -R3:3 test_importlib

However, you can also see it by running:

  ./python -X showrefcount

Importing the array or _testmultiphase modules, and
then deleting them from both sys.modules and the local
namespace shows significant increases in the total
number of active references each cycle. By contrast,
with _testcapi (which continues to use single-phase
initialisation) the global refcounts stabilise after
a couple of cycles.
2015-05-23 22:24:10 +10:00
..
bdist_wininst Closes #17202: Merge with 3.4 2015-04-13 12:11:40 -05:00
clinic Issue #23995: Removes _WCONIO_DEFINED check as the wchar_t console functions are always available. 2015-05-13 19:35:49 -07:00
example_nt Removed unintentional trailing spaces in text files. 2015-03-29 19:12:58 +03:00
icons Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn 2006-06-08 14:42:34 +00:00
WinMain.c Use UNICODE wWinMain, to make CRT initialize __wargv. 2008-05-09 17:06:49 +00:00
_msi.c Issue #21931: Fix error handling in msilib.FCICreate(). 2015-05-18 00:47:15 -05:00
config.c PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
dl_nt.c Fixes sys.winver generation and removes dependency on user32.dll 2015-01-15 09:10:16 -08:00
dllbase_nt.txt #3791: Remove bsddb from the Windows msi installer, 2008-09-09 06:42:00 +00:00
empty.c Add main program for icon file. 2004-09-03 13:32:57 +00:00
errmap.h Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described 2011-10-07 16:16:31 +02:00
errmap.mak Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk. 2006-05-27 19:21:47 +00:00
frozen_dllmain.c Use GetModuleHandleW to avoid *A functions where possible. 2012-01-14 17:54:09 +01:00
generrmap.c Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described 2011-10-07 16:16:31 +02:00
getpathp.c Issue #23955: Add pyvenv.cfg option to suppress registry/environment lookup for generating sys.path. 2015-05-22 15:10:10 -07:00
icons.mak Help compiling icons into an exe, for use with MSI advertisement. 2004-08-13 15:26:40 +00:00
icons.rc Help compiling icons into an exe, for use with MSI advertisement. 2004-08-13 15:26:40 +00:00
invalid_parameter_handler.c Issue #23524: Replace _PyVerify_fd function with calls to _set_thread_local_invalid_parameter_handler. 2015-04-12 00:26:27 -04:00
launcher.c Removed unintentional trailing spaces in non-external and non-generated C files. 2015-03-18 21:53:15 +02:00
launcher.ico Add launcher source and resources 2012-06-20 15:36:14 -05:00
make_versioninfo.c Recorded merge of revisions 81032 via svnmerge from 2010-05-09 16:14:21 +00:00
msvcrtmodule.c Issue #23995: Removes _WCONIO_DEFINED check as the wchar_t console functions are always available. 2015-05-13 19:35:49 -07:00
py.ico Merge the rest of the trunk. 2006-06-08 15:35:45 +00:00
pyc.ico Merge the rest of the trunk. 2006-06-08 15:35:45 +00:00
pycon.ico Merge the rest of the trunk. 2006-06-08 15:35:45 +00:00
pyconfig.h Issue #23451: Update pyconfig.h for Windows to require Vista headers and remove unnecessary version checks. 2015-03-02 08:01:10 -08:00
pylauncher.rc Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release. 2014-11-22 12:54:57 -08:00
python.manifest Issue 23018: Add version info to python[w].exe 2015-01-15 09:10:43 -08:00
python3.def Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release. 2014-11-22 12:54:57 -08:00
python3dll.c Add updated .hgeol file and fix newlines in the 3.2 branch. 2011-03-05 15:11:35 +01:00
python_exe.rc Issue 23018: Add version info to python[w].exe 2015-01-15 09:10:43 -08:00
python_nt.rc Issue 23018: Add version info to python[w].exe 2015-01-15 09:10:43 -08:00
python_ver_rc.h Closes #23018: Replace copyright symbol with escape. 2015-02-20 09:08:48 -08:00
readme.txt Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release. 2014-11-22 12:54:57 -08:00
testpy.py Fix more lingering print statements. 2007-08-30 18:50:25 +00:00
winreg.c Issue #20172: Update clinicizations to current clinic. 2015-05-13 10:58:35 -05:00
winsound.c Issue #20172: Update clinicizations to current clinic. 2015-05-13 10:58:35 -05:00

readme.txt

Welcome to the "PC" subdirectory of the Python distribution
***********************************************************

This "PC" subdirectory contains complete project files to make
several older PC ports of Python, as well as all the PC-specific
Python source files.  It should be located in the root of the
Python distribution, and there should be directories "Modules",
"Objects", "Python", etc. in the parent directory of this "PC"
subdirectory.  Be sure to read the documentation in the Python
distribution.

Python requires library files such as string.py to be available in
one or more library directories.  The search path of libraries is
set up when Python starts.  To see the current Python library search
path, start Python and enter "import sys" and "print sys.path".

All PC ports use this scheme to try to set up a module search path:

  1) The script location; the current directory without script.
  2) The PYTHONPATH variable, if set.
  3) For Win32 platforms (NT/95), paths specified in the Registry.
  4) Default directories lib, lib/win, lib/test, lib/tkinter;
     these are searched relative to the environment variable
     PYTHONHOME, if set, or relative to the executable and its
     ancestors, if a landmark file (Lib/string.py) is found ,
     or the current directory (not useful).
  5) The directory containing the executable.

The best installation strategy is to put the Python executable (and
DLL, for Win32 platforms) in some convenient directory such as
C:/python, and copy all library files and subdirectories (using XCOPY)
to C:/python/lib.  Then you don't need to set PYTHONPATH.  Otherwise,
set the environment variable PYTHONPATH to your Python search path.
For example,
   set PYTHONPATH=.;d:\python\lib;d:\python\lib\win;d:\python\lib\dos-8x3

There are several add-in modules to build Python programs which use
the native Windows operating environment.  The ports here just make
"QuickWin" and DOS Python versions which support a character-mode
(console) environment.  Look in www.python.org for Tkinter, PythonWin,
WPY and wxPython.

To make a Python port, start the Integrated Development Environment
(IDE) of your compiler, and read in the native "project file"
(or makefile) provided.  This will enable you to change any source
files or build settings so you can make custom builds.

pyconfig.h    An important configuration file specific to PC's.

config.c    The list of C modules to include in the Python PC
            version.  Manually edit this file to add or
            remove Python modules.

testpy.py   A Python test program.  Run this to test your
            Python port.  It should produce copious output,
	    ending in a report on how many tests were OK, how many
	    failed, and how many were skipped.  Don't worry about
	    skipped tests (these test unavailable optional features).


Additional files and subdirectories for 32-bit Windows
======================================================

python_nt.rc   Resource compiler input for python15.dll.

dl_nt.c
               Additional sources used for 32-bit Windows features.

getpathp.c     Default sys.path calculations (for all PC platforms).

dllbase_nt.txt A (manually maintained) list of base addresses for
               various DLLs, to avoid run-time relocation.

example_nt     A subdirectory showing how to build an extension as a
               DLL.

Note for Windows 3.x and DOS users
==================================

Neither Windows 3.x nor DOS is supported any more.  The last Python
version that supported these was Python 1.5.2; the support files were
present in Python 2.0 but weren't updated, and it is not our intention
to support these platforms for Python 2.x.