diff --git a/.hgsvnexternals b/.hgsvnexternals index 048f7c8f2b2..28567dcc045 100644 --- a/.hgsvnexternals +++ b/.hgsvnexternals @@ -1,3 +1,2 @@ [Tools] 2to3 http://svn.python.org/projects/sandbox/trunk/2to3/ - diff --git a/Doc/Makefile b/Doc/Makefile index 22f852be6b0..189a2f72e9e 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -16,10 +16,11 @@ ALLSPHINXOPTS = -b $(BUILDER) -d build/doctrees -D latex_paper_size=$(PAPER) \ help: @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " web to make file usable by Sphinx.web" + @echo " html to make standalone HTML files" + @echo " web to make file usable by Sphinx.web" @echo " htmlhelp to make HTML files and a HTML help project" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview over all changed/added/deprecated items" checkout: @if [ ! -d tools/sphinx ]; then \ @@ -66,6 +67,10 @@ latex: build @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." +changes: BUILDER = changes +changes: build + @echo "The overview file is in build/changes." + clean: -rm -rf build/* -rm -rf tools/sphinx diff --git a/Doc/README.txt b/Doc/README.txt index 9db4f4ca386..c6f685cbaf9 100644 --- a/Doc/README.txt +++ b/Doc/README.txt @@ -56,6 +56,10 @@ Available make targets are: * "latex", which builds LaTeX source files that can be run with "pdflatex" to produce PDF documents. + * "changes", which builds an overview over all versionadded/versionchanged/ + deprecated items in the current version. This is meant as a help for the + writer of the "What's New" document. + A "make update" updates the Subversion checkouts in `tools/`. diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst index 94137624b26..3e06e4f23b9 100644 --- a/Doc/c-api/exceptions.rst +++ b/Doc/c-api/exceptions.rst @@ -31,8 +31,8 @@ The error indicator consists of three Python objects corresponding to the result of ``sys.exc_info()``. API functions exist to interact with the error indicator in various ways. There is a separate error indicator for each thread. -.. % XXX Order of these should be more thoughtful. -.. % Either alphabetical or some kind of structure. +.. XXX Order of these should be more thoughtful. + Either alphabetical or some kind of structure. .. cfunction:: void PyErr_Print() diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index a4f25fa7827..dac37e1767c 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -264,7 +264,7 @@ Initialization, Finalization, and Threads as the list ``sys.path``, which may be modified to change the future search path for loaded modules. - .. % XXX should give the exact rules + .. XXX should give the exact rules .. cfunction:: const char* Py_GetVersion() @@ -357,8 +357,8 @@ Initialization, Finalization, and Threads to initialize ``sys.argv``, a fatal condition is signalled using :cfunc:`Py_FatalError`. - .. % XXX impl. doesn't seem consistent in allowing 0/NULL for the params; - .. % check w/ Guido. + .. XXX impl. doesn't seem consistent in allowing 0/NULL for the params; + check w/ Guido. .. _threads: diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 54412cd45e1..2742a53b1c5 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -484,7 +484,7 @@ Here is the corresponding C code, in all its glory:: single: PyErr_Clear() single: Py_XDECREF() -This example represents an endorsed use of the :keyword:`goto` statement in C! +This example represents an endorsed use of the ``goto`` statement in C! It illustrates the use of :cfunc:`PyErr_ExceptionMatches` and :cfunc:`PyErr_Clear` to handle specific exceptions, and the use of :cfunc:`Py_XDECREF` to dispose of owned references that may be *NULL* (note the diff --git a/Doc/c-api/newtypes.rst b/Doc/c-api/newtypes.rst index b557957b302..88a4f2fe727 100644 --- a/Doc/c-api/newtypes.rst +++ b/Doc/c-api/newtypes.rst @@ -459,7 +459,7 @@ type objects) *must* have the :attr:`ob_size` field. declare the instance struct) and this in turn includes the :attr:`_ob_prev` and :attr:`_ob_next` fields if they are present. This means that the only correct way to get an initializer for the :attr:`tp_basicsize` is to use the - :keyword:`sizeof` operator on the struct used to declare the instance layout. + ``sizeof`` operator on the struct used to declare the instance layout. The basic size does not include the GC header size (this is new in Python 2.2; in 2.1 and 2.0, the GC header size was included in :attr:`tp_basicsize`). @@ -1145,7 +1145,7 @@ The next fields, up to and including :attr:`tp_weaklist`, only exist if the PyObject * tp_descr_get(PyObject *self, PyObject *obj, PyObject *type); - XXX more + XXX explain. This field is inherited by subtypes. @@ -1160,7 +1160,7 @@ The next fields, up to and including :attr:`tp_weaklist`, only exist if the This field is inherited by subtypes. - XXX more + XXX explain. .. cmember:: long PyTypeObject.tp_dictoffset @@ -1683,10 +1683,9 @@ member in the :ctype:`PyTypeObject` structure should be *NULL*. Otherwise, the and :exc:`SystemError` should be raised when *segment* specifies a segment that doesn't exist. - .. % Why doesn't it raise ValueError for this one? - .. % GJS: because you shouldn't be calling it with an invalid - .. % segment. That indicates a blatant programming error in the C - .. % code. + .. Why doesn't it raise ValueError for this one? + GJS: because you shouldn't be calling it with an invalid + segment. That indicates a blatant programming error in the C code. .. ctype:: Py_ssize_t (*segcountproc) (PyObject *self, Py_ssize_t *lenp) diff --git a/Doc/distutils/setupscript.rst b/Doc/distutils/setupscript.rst index 3ffcc784dfa..8b88b589bda 100644 --- a/Doc/distutils/setupscript.rst +++ b/Doc/distutils/setupscript.rst @@ -137,7 +137,7 @@ the Distutils to go out and find the right files; you have to specify the extension name, source file(s), and any compile/link requirements (include directories, libraries to link with, etc.). -.. % XXX read over this section +.. XXX read over this section All of this is done through another keyword argument to :func:`setup`, the :option:`ext_modules` option. :option:`ext_modules` is just a list of diff --git a/Doc/documenting/fromlatex.rst b/Doc/documenting/fromlatex.rst index 42045f7daf0..116524ac557 100644 --- a/Doc/documenting/fromlatex.rst +++ b/Doc/documenting/fromlatex.rst @@ -154,25 +154,35 @@ These changes to information units should be noted: Description. -* **New information unit** +* **New information units** - There is a new generic information unit called "describe" which can be used - to document things that are not covered by the other units:: + There are new generic information units: One is called "describe" and can be + used to document things that are not covered by the other units:: .. describe:: a == b The equals operator. + The others are:: + + .. cmdoption:: -O + + Describes a command-line option. + + .. envvar:: PYTHONINSPECT + + Describes an environment variable. + Structure --------- -The LaTeX docs were split in several toplevel manuals. Now, all files -are part of the same documentation tree, as indicated by the *toctree* -directives in the sources. Every *toctree* directive embeds other files -as subdocuments of the current file (this structure is not necessarily -mirrored in the filesystem layout). The toplevel file is -:file:`contents.rst`. +The LaTeX docs were split in several toplevel manuals. Now, all files are part +of the same documentation tree, as indicated by the *toctree* directives in the +sources (though individual output formats may choose to split them up into parts +again). Every *toctree* directive embeds other files as subdocuments of the +current file (this structure is not necessarily mirrored in the filesystem +layout). The toplevel file is :file:`contents.rst`. However, most of the old directory structure has been kept, with the directories renamed as follows: @@ -184,7 +194,7 @@ directories renamed as follows: * :file:`inst` -> :file:`installing` * :file:`lib` -> :file:`library` * :file:`mac` -> merged into :file:`library`, with :file:`mac/using.tex` - moved to :file:`howto/pythonmac.rst` + moved to :file:`using/mac.rst` * :file:`ref` -> :file:`reference` * :file:`tut` -> :file:`tutorial`, with the single TeX file split up diff --git a/Doc/documenting/markup.rst b/Doc/documenting/markup.rst index a246d62e9a4..f3a82370df1 100644 --- a/Doc/documenting/markup.rst +++ b/Doc/documenting/markup.rst @@ -455,7 +455,7 @@ in a different style: .. describe:: keyword - The name of a keyword in a programming language. + The name of a keyword in Python. .. describe:: mailheader diff --git a/Doc/documenting/sphinx.rst b/Doc/documenting/sphinx.rst index 85e8b5e3263..43da14e1925 100644 --- a/Doc/documenting/sphinx.rst +++ b/Doc/documenting/sphinx.rst @@ -47,14 +47,30 @@ unused_files : list of strings could be docs for temporarily disabled modules or documentation that's not yet ready for public consumption. -last_updated_format : string +add_function_parentheses : bool + If true, ``()`` will be appended to the content of ``:func:``, ``:meth:`` and + ``:cfunc:`` cross-references. + +add_module_names : bool + If true, the current module name will be prepended to all description unit + titles (such as ``.. function::``). + +Builder-specific variables +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +html_download_base_url : string + The base URL for download links on the download page. + +html_last_updated_fmt : string If this is not an empty string, it will be given to ``time.strftime()`` and written to each generated output file after "last updated on:". -use_smartypants : bool +html_use_smartypants : bool If true, use SmartyPants to convert quotes and dashes to the typographically correct entities. -add_function_parentheses : bool - If true, ``()`` will be appended to the content of ``:func:``, ``:meth:`` and - ``:cfunc:`` cross-references. \ No newline at end of file +latex_paper_size : "letter" or "a4" + The paper size option for the LaTeX document class. + +latex_font_size : "10pt", "11pt" or "12pt" + The font size option for the LaTeX document class. \ No newline at end of file diff --git a/Doc/extending/embedding.rst b/Doc/extending/embedding.rst index a50c008920c..6ba2c673672 100644 --- a/Doc/extending/embedding.rst +++ b/Doc/extending/embedding.rst @@ -155,11 +155,7 @@ then the result should be:: Although the program is quite large for its functionality, most of the code is for data conversion between Python and C, and for error reporting. The -interesting part with respect to embedding Python starts with - -.. % $ - -:: +interesting part with respect to embedding Python starts with :: Py_Initialize(); pName = PyString_FromString(argv[1]); @@ -239,15 +235,8 @@ With these extensions, the Python script can do things like :: In a real application, the methods will expose an API of the application to Python. -.. % \section{For the future} -.. % -.. % You don't happen to have a nice library to get textual -.. % equivalents of numeric values do you :-) ? -.. % Callbacks here ? (I may be using information from that section -.. % ?!) -.. % threads -.. % code examples do not really behave well if errors happen -.. % (what to watch out for) +.. TODO: threads, code examples do not really behave well if errors happen + (what to watch out for) .. _embeddingincplusplus: diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index 9b5e0fe90fa..5459a7dacf1 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -306,7 +306,7 @@ function. The method table must be passed to the interpreter in the module's initialization function. The initialization function must be named :cfunc:`initname`, where *name* is the name of the module, and should be the -only non-\ :keyword:`static` item defined in the module file:: +only non-\ ``static`` item defined in the module file:: PyMODINIT_FUNC initspam(void) @@ -660,11 +660,7 @@ it returns false and raises an appropriate exception. .. index:: single: Philbrick, Geoff Here is an example module which uses keywords, based on an example by Geoff -Philbrick (philbrick@hks.com): - -.. % - -:: +Philbrick (philbrick@hks.com):: #include "Python.h" @@ -762,8 +758,8 @@ Reference Counts In languages like C or C++, the programmer is responsible for dynamic allocation and deallocation of memory on the heap. In C, this is done using the functions -:cfunc:`malloc` and :cfunc:`free`. In C++, the operators :keyword:`new` and -:keyword:`delete` are used with essentially the same meaning and we'll restrict +:cfunc:`malloc` and :cfunc:`free`. In C++, the operators ``new`` and +``delete`` are used with essentially the same meaning and we'll restrict the following discussion to the C case. Every block of memory allocated with :cfunc:`malloc` should eventually be @@ -1036,11 +1032,10 @@ that it is always a tuple. [#]_ It is a severe error to ever let a *NULL* pointer "escape" to the Python user. -.. % Frank Stajano: -.. % A pedagogically buggy example, along the lines of the previous listing, -.. % would be helpful here -- showing in more concrete terms what sort of -.. % actions could cause the problem. I can't very well imagine it from the -.. % description. +.. Frank Stajano: + A pedagogically buggy example, along the lines of the previous listing, would + be helpful here -- showing in more concrete terms what sort of actions could + cause the problem. I can't very well imagine it from the description. .. _cplusplus: @@ -1076,7 +1071,7 @@ lists, this new collection type should have a set of C functions for direct manipulation from other extension modules. At first sight this seems easy: just write the functions (without declaring them -:keyword:`static`, of course), provide an appropriate header file, and document +``static``, of course), provide an appropriate header file, and document the C API. And in fact this would work if all extension modules were always linked statically with the Python interpreter. When modules are used as shared libraries, however, the symbols defined in one module may not be visible to @@ -1089,7 +1084,7 @@ the module whose functions one wishes to call might not have been loaded yet! Portability therefore requires not to make any assumptions about symbol visibility. This means that all symbols in extension modules should be declared -:keyword:`static`, except for the module's initialization function, in order to +``static``, except for the module's initialization function, in order to avoid name clashes with other extension modules (as discussed in section :ref:`methodtable`). And it means that symbols that *should* be accessible from other extension modules must be exported in a different way. @@ -1124,7 +1119,7 @@ reality (such as adding "spam" to every command). This function :cfunc:`PySpam_System` is also exported to other extension modules. The function :cfunc:`PySpam_System` is a plain C function, declared -:keyword:`static` like everything else:: +``static`` like everything else:: static int PySpam_System(const char *command) @@ -1180,7 +1175,7 @@ function must take care of initializing the C API pointer array:: PyModule_AddObject(m, "_C_API", c_api_object); } -Note that ``PySpam_API`` is declared :keyword:`static`; otherwise the pointer +Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array would disappear when :func:`initspam` terminates! The bulk of the work is in the header file :file:`spammodule.h`, which looks diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst index e2cf6dfbf8f..cbe3b683bb8 100644 --- a/Doc/extending/newtypes.rst +++ b/Doc/extending/newtypes.rst @@ -1196,16 +1196,14 @@ class object, and get the doc string using its :attr:`__doc__` attribute. As with the :attr:`tp_methods` table, a sentinel entry with a :attr:`name` value of *NULL* is required. -.. % XXX Descriptors need to be explained in more detail somewhere, but -.. % not here. -.. % -.. % Descriptor objects have two handler functions which correspond to -.. % the \member{tp_getattro} and \member{tp_setattro} handlers. The -.. % \method{__get__()} handler is a function which is passed the -.. % descriptor, instance, and type objects, and returns the value of the -.. % attribute, or it returns \NULL{} and sets an exception. The -.. % \method{__set__()} handler is passed the descriptor, instance, type, -.. % and new value; +.. XXX Descriptors need to be explained in more detail somewhere, but not here. + + Descriptor objects have two handler functions which correspond to the + \member{tp_getattro} and \member{tp_setattro} handlers. The + \method{__get__()} handler is a function which is passed the descriptor, + instance, and type objects, and returns the value of the attribute, or it + returns \NULL{} and sets an exception. The \method{__set__()} handler is + passed the descriptor, instance, type, and new value; Type-specific Attribute Management diff --git a/Doc/extending/windows.rst b/Doc/extending/windows.rst index 7a66afe6455..a34ba2bf995 100644 --- a/Doc/extending/windows.rst +++ b/Doc/extending/windows.rst @@ -7,8 +7,6 @@ Building C and C++ Extensions on Windows **************************************** -.. % - This chapter briefly explains how to create a Windows extension module for Python using Microsoft Visual C++, and follows with more detailed background information on how it works. The explanatory material is useful for both the diff --git a/Doc/howto/advocacy.rst b/Doc/howto/advocacy.rst index 1f1754abc32..7d7706e6008 100644 --- a/Doc/howto/advocacy.rst +++ b/Doc/howto/advocacy.rst @@ -302,11 +302,11 @@ http://www.pythonology.com/success The Python Success Stories are a collection of stories from successful users of Python, with the emphasis on business and corporate users. -.. % \term{\url{http://www.fsbassociates.com/books/pythonchpt1.htm}} -.. % The first chapter of \emph{Internet Programming with Python} also -.. % examines some of the reasons for using Python. The book is well worth -.. % buying, but the publishers have made the first chapter available on -.. % the Web. +.. http://www.fsbassociates.com/books/pythonchpt1.htm + The first chapter of \emph{Internet Programming with Python} also + examines some of the reasons for using Python. The book is well worth + buying, but the publishers have made the first chapter available on + the Web. http://home.pacbell.net/ouster/scripting.html John Ousterhout's white paper on scripting is a good argument for the utility of @@ -333,9 +333,9 @@ http://pythonjournal.cognizor.com/pyj1/Everitt-Feit_interview98-V1.html to show that choosing Python didn't introduce any difficulties into a company's development process, and provided some substantial benefits. -.. % \term{\url{http://www.python.org/psa/Commercial.html}} -.. % Robin Friedrich wrote this document on how to support Python's use in -.. % commercial projects. +.. http://www.python.org/psa/Commercial.html + Robin Friedrich wrote this document on how to support Python's use in + commercial projects. http://www.python.org/workshops/1997-10/proceedings/stein.ps For the 6th Python conference, Greg Stein presented a paper that traced Python's diff --git a/Doc/howto/doanddont.rst b/Doc/howto/doanddont.rst index ace5bedb479..0e6b3e8d947 100644 --- a/Doc/howto/doanddont.rst +++ b/Doc/howto/doanddont.rst @@ -291,7 +291,7 @@ are often more then is comfortable to put in one line, many people do:: calculate_number(10, 20) != forbulate(500, 360): pass -You should realize that this is dangerous: a stray space after the ``XXX`` would +You should realize that this is dangerous: a stray space after the ``\`` would make this line wrong, and stray spaces are notoriously hard to see in editors. In this case, at least it would be a syntax error, but if the code was:: diff --git a/Doc/howto/regex.rst b/Doc/howto/regex.rst index 783bec10633..6adecd7a89e 100644 --- a/Doc/howto/regex.rst +++ b/Doc/howto/regex.rst @@ -5,11 +5,11 @@ :Author: A.M. Kuchling :Release: 0.05 -.. % TODO: -.. % Document lookbehind assertions -.. % Better way of displaying a RE, a string, and what it matches -.. % Mention optional argument to match.groups() -.. % Unicode (at least a reference) +.. TODO: + Document lookbehind assertions + Better way of displaying a RE, a string, and what it matches + Mention optional argument to match.groups() + Unicode (at least a reference) .. topic:: Abstract @@ -91,8 +91,6 @@ is the same as ``[a-c]``, which uses a range to express the same set of characters. If you wanted to match only lowercase letters, your RE would be ``[a-z]``. -.. % $ - Metacharacters are not active inside classes. For example, ``[akm$]`` will match any of the characters ``'a'``, ``'k'``, ``'m'``, or ``'$'``; ``'$'`` is usually a metacharacter, but inside a character class it's stripped of its @@ -679,8 +677,8 @@ given location, they can obviously be matched an infinite number of times. >>> print(re.search('^From', 'Reciting From Memory')) None - .. % To match a literal \character{\^}, use \regexp{\e\^} or enclose it - .. % inside a character class, as in \regexp{[{\e}\^]}. + .. To match a literal \character{\^}, use \regexp{\e\^} or enclose it + .. inside a character class, as in \regexp{[{\e}\^]}. ``$`` Matches at the end of a line, which is defined as either the end of the string, @@ -696,8 +694,6 @@ given location, they can obviously be matched an infinite number of times. To match a literal ``'$'``, use ``\$`` or enclose it inside a character class, as in ``[$]``. - .. % $ - ``\A`` Matches only at the start of the string. When not in :const:`MULTILINE` mode, ``\A`` and ``^`` are effectively the same. In :const:`MULTILINE` mode, they're @@ -980,12 +976,8 @@ filenames where the extension is not ``bat``? Some incorrect attempts: that the first character of the extension is not a ``b``. This is wrong, because the pattern also doesn't match ``foo.bar``. -.. % $ - ``.*[.]([^b]..|.[^a].|..[^t])$`` -.. % Messes up the HTML without the curly braces around \^ - The expression gets messier when you try to patch up the first solution by requiring one of the following cases to match: the first character of the extension isn't ``b``; the second character isn't ``a``; or the third character @@ -1013,16 +1005,12 @@ match, the whole pattern will fail. The trailing ``$`` is required to ensure that something like ``sample.batch``, where the extension only starts with ``bat``, will be allowed. -.. % $ - Excluding another filename extension is now easy; simply add it as an alternative inside the assertion. The following pattern excludes filenames that end in either ``bat`` or ``exe``: ``.*[.](?!bat$|exe$).*$`` -.. % $ - Modifying Strings ================= @@ -1343,16 +1331,10 @@ enables REs to be formatted more neatly:: \s*$ # Trailing whitespace to end-of-line """, re.VERBOSE) -This is far more readable than: - -.. % $ - -:: +This is far more readable than:: pat = re.compile(r"\s*(?P
[^:]+)\s*:(?P.*?)\s*$") -.. % $ - Feedback ======== diff --git a/Doc/install/index.rst b/Doc/install/index.rst index 1bfc7037f00..c830c8de5db 100644 --- a/Doc/install/index.rst +++ b/Doc/install/index.rst @@ -10,18 +10,17 @@ :Release: |version| :Date: |today| -.. % TODO: -.. % Fill in XXX comments +.. TODO: Fill in XXX comments -.. % The audience for this document includes people who don't know anything -.. % about Python and aren't about to learn the language just in order to -.. % install and maintain it for their users, i.e. system administrators. -.. % Thus, I have to be sure to explain the basics at some point: -.. % sys.path and PYTHONPATH at least. Should probably give pointers to -.. % other docs on "import site", PYTHONSTARTUP, PYTHONHOME, etc. -.. % -.. % Finally, it might be useful to include all the material from my "Care -.. % and Feeding of a Python Installation" talk in here somewhere. Yow! +.. The audience for this document includes people who don't know anything + about Python and aren't about to learn the language just in order to + install and maintain it for their users, i.e. system administrators. + Thus, I have to be sure to explain the basics at some point: + sys.path and PYTHONPATH at least. Should probably give pointers to + other docs on "import site", PYTHONSTARTUP, PYTHONHOME, etc. + + Finally, it might be useful to include all the material from my "Care + and Feeding of a Python Installation" talk in here somewhere. Yow! .. topic:: Abstract @@ -565,11 +564,11 @@ environment variables, such as Mac OS 9, the configuration variables supplied by the Distutils are the only ones you can use.) See section :ref:`inst-config-files` for details. -.. % XXX need some Windows examples---when would custom -.. % installation schemes be needed on those platforms? +.. XXX need some Windows examples---when would custom installation schemes be + needed on those platforms? -.. % XXX I'm not sure where this section should go. +.. XXX I'm not sure where this section should go. .. _inst-search-path: @@ -881,8 +880,8 @@ Microsoft Visual C++, which uses COFF as the object file format.) For this reason you have to convert Python's library :file:`python25.lib` into the Borland format. You can do this as follows: -.. % Should we mention that users have to create cfg-files for the compiler? -.. % see also http://community.borland.com/article/0,1410,21205,00.html +.. Should we mention that users have to create cfg-files for the compiler? +.. see also http://community.borland.com/article/0,1410,21205,00.html :: @@ -940,8 +939,8 @@ a good program for this task at http://starship.python.net/crew/kernr/mingw32/Notes.html, see at PExports 0.42h there.) -.. % I don't understand what the next line means. --amk -.. % (inclusive the references on data structures.) +.. I don't understand what the next line means. --amk +.. (inclusive the references on data structures.) :: diff --git a/Doc/library/aepack.rst b/Doc/library/aepack.rst index 0ee93e52083..daaa9b2a970 100644 --- a/Doc/library/aepack.rst +++ b/Doc/library/aepack.rst @@ -6,9 +6,7 @@ :platform: Mac :synopsis: Conversion between Python variables and AppleEvent data containers. .. sectionauthor:: Vincent Marchetti - - -.. % \moduleauthor{Jack Jansen?}{email} +.. moduleauthor:: Jack Jansen The :mod:`aepack` module defines functions for converting (packing) Python variables to AppleEvent descriptors and back (unpacking). Within Python the diff --git a/Doc/library/aetools.rst b/Doc/library/aetools.rst index b5fd4add04e..da427eb713e 100644 --- a/Doc/library/aetools.rst +++ b/Doc/library/aetools.rst @@ -6,9 +6,7 @@ :platform: Mac :synopsis: Basic support for sending Apple Events .. sectionauthor:: Jack Jansen - - -.. % \moduleauthor{Jack Jansen?}{email} +.. moduleauthor:: Jack Jansen The :mod:`aetools` module contains the basic functionality on which Python AppleScript client support is built. It also imports and re-exports the core diff --git a/Doc/library/aetypes.rst b/Doc/library/aetypes.rst index 0dd0a88c85a..c8c5d809ee8 100644 --- a/Doc/library/aetypes.rst +++ b/Doc/library/aetypes.rst @@ -6,9 +6,7 @@ :platform: Mac :synopsis: Python representation of the Apple Event Object Model. .. sectionauthor:: Vincent Marchetti - - -.. % \moduleauthor{Jack Jansen?}{email} +.. moduleauthor:: Jack Jansen The :mod:`aetypes` defines classes used to represent Apple Event data descriptors and Apple Event object specifiers. diff --git a/Doc/library/asyncore.rst b/Doc/library/asyncore.rst index 2ed3c9254a4..6830bae2a4a 100644 --- a/Doc/library/asyncore.rst +++ b/Doc/library/asyncore.rst @@ -8,13 +8,12 @@ .. moduleauthor:: Sam Rushing .. sectionauthor:: Christopher Petrilli .. sectionauthor:: Steve Holden +.. heavily adapted from original documentation by Sam Rushing This module provides the basic infrastructure for writing asynchronous socket service clients and servers. -.. % Heavily adapted from original documentation by Sam Rushing. - There are only two ways to have a program on a single processor do "more than one thing at a time." Multi-threaded programming is the simplest and most popular way to do it, but there is another very different technique, that lets diff --git a/Doc/library/audioop.rst b/Doc/library/audioop.rst index 7779610ee7d..8ee2795a9eb 100644 --- a/Doc/library/audioop.rst +++ b/Doc/library/audioop.rst @@ -19,7 +19,7 @@ specified otherwise. This module provides support for a-LAW, u-LAW and Intel/DVI ADPCM encodings. -.. % This para is mostly here to provide an excuse for the index entries... +.. This para is mostly here to provide an excuse for the index entries... A few of the more complicated operations only take 16-bit samples, otherwise the sample size (in bytes) is always a parameter of the operation. diff --git a/Doc/library/bisect.rst b/Doc/library/bisect.rst index 10f72fb7216..114300ef210 100644 --- a/Doc/library/bisect.rst +++ b/Doc/library/bisect.rst @@ -5,11 +5,7 @@ .. module:: bisect :synopsis: Array bisection algorithms for binary searching. .. sectionauthor:: Fred L. Drake, Jr. - - -.. % LaTeX produced by Fred L. Drake, Jr. , with an -.. % example based on the PyModules FAQ entry by Aaron Watters -.. % . +.. example based on the PyModules FAQ entry by Aaron Watters This module provides support for maintaining a list in sorted order without having to sort the list after each insertion. For long lists of items with diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst index 41ebf9d0d63..9f0171c4bc5 100644 --- a/Doc/library/cgi.rst +++ b/Doc/library/cgi.rst @@ -176,7 +176,7 @@ intuitive way. The interface doesn't make the techniques described in previous sections obsolete --- they are still useful to process file uploads efficiently, for example. -.. % XXX: Is this true ? +.. XXX: Is this true ? The interface consists of two simple methods. Using the methods you can process form data in a generic way, without the need to worry whether only one or more diff --git a/Doc/library/codeop.rst b/Doc/library/codeop.rst index 35430b4b246..456f6dd3c4c 100644 --- a/Doc/library/codeop.rst +++ b/Doc/library/codeop.rst @@ -7,9 +7,6 @@ .. sectionauthor:: Moshe Zadka .. sectionauthor:: Michael Hudson - -.. % LaTeXed from excellent doc-string. - The :mod:`codeop` module provides utilities upon which the Python read-eval-print loop can be emulated, as is done in the :mod:`code` module. As a result, you probably don't want to use the module directly; if you want to @@ -29,7 +26,6 @@ of doing them both. To do just the former: - .. function:: compile_command(source[, filename[, symbol]]) Tries to compile *source*, which should be a string of Python code and return a diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index e01c52e1def..3fd0cc972cf 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -100,7 +100,7 @@ particular functionality, for example:: where only the most recent activity is of interest. .. versionchanged:: 2.6 - Added *maxlen* + Added *maxlen* parameter. Deque objects support the following methods: diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst index 6185aa0bac3..979f351ef74 100644 --- a/Doc/library/configparser.rst +++ b/Doc/library/configparser.rst @@ -87,7 +87,7 @@ write-back, as will be the keys within each section. well. New applications should prefer this version if they don't need to be compatible with older versions of Python. - .. % XXX Need to explain what's safer/more predictable about it. + .. XXX Need to explain what's safer/more predictable about it. .. exception:: NoSectionError diff --git a/Doc/library/constants.rst b/Doc/library/constants.rst index 0d44b7babb5..387087417e6 100644 --- a/Doc/library/constants.rst +++ b/Doc/library/constants.rst @@ -15,19 +15,21 @@ A small number of constants live in the built-in namespace. They are: .. data:: False - The false value of the :class:`bool` type. + The false value of the :class:`bool` type. Assignments to ``False`` + are illegal and raise a :exc:`SyntaxError`. .. data:: True - The true value of the :class:`bool` type. + The true value of the :class:`bool` type. Assignments to ``True`` + are illegal and raise a :exc:`SyntaxError`. .. data:: None The sole value of :attr:`types.NoneType`. ``None`` is frequently used to represent the absence of a value, as when default arguments are not passed to a - function. + function. Assignments to ``None`` are illegal and raise a :exc:`SyntaxError`. .. data:: NotImplemented @@ -42,11 +44,11 @@ A small number of constants live in the built-in namespace. They are: The same as ``...``. Special value used mostly in conjunction with extended slicing syntax for user-defined container data types, as in :: - val = container[1:5, 7:10, ...] + .. XXX Someone who understands extended slicing should fill in here. .. data:: __debug__ - A boolean value that is :data:`True` if Python was not started with the - ``-O`` command line option. Its value is used indirectly by the - :keyword:`assert` statement, but it can also be used directly in code. + This constant is true if Python was not started with an :option:`-O` option. + Assignments to :const:`__debug__` are illegal and raise a :exc:`SyntaxError`. + See also the :keyword:`assert` statement. diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst index 0abee4d895d..485cfc5da97 100644 --- a/Doc/library/copy.rst +++ b/Doc/library/copy.rst @@ -21,8 +21,6 @@ Interface summary:: For module specific errors, :exc:`copy.error` is raised. -.. % - The difference between shallow and deep copying is only relevant for compound objects (objects that contain other objects, like lists or class instances): diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index c7598321101..bbe44089e7b 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -69,7 +69,7 @@ the library by creating an instance of CDLL by calling the constructor:: >>> -.. % XXX Add section for Mac OS X. +.. XXX Add section for Mac OS X. .. _ctypes-accessing-functions-from-loaded-dlls: @@ -1256,10 +1256,6 @@ Enumeration types are not implemented. You can do it easily yourself, using ``long double`` is not implemented. -.. % Local Variables: -.. % compile-command: "make.bat" -.. % End: - .. _ctypes-ctypes-reference: diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst index 046b7965c7c..07ccc55c676 100644 --- a/Doc/library/curses.rst +++ b/Doc/library/curses.rst @@ -1167,7 +1167,7 @@ Several constants are available to specify character cell attributes: Keys are referred to by integer constants with names starting with ``KEY_``. The exact keycaps available are system dependent. -.. % XXX should this table be alphabetized? +.. XXX this table is far too large! should it be alphabetized? +-------------------+--------------------------------------------+ | Key constant | Key | diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst index adc16645b6e..3fad2fb5837 100644 --- a/Doc/library/datetime.rst +++ b/Doc/library/datetime.rst @@ -1,6 +1,3 @@ -.. % XXX what order should the types be discussed in? - - :mod:`datetime` --- Basic date and time types ============================================= @@ -10,6 +7,7 @@ .. sectionauthor:: Tim Peters .. sectionauthor:: A.M. Kuchling +.. XXX what order should the types be discussed in? The :mod:`datetime` module supplies classes for manipulating dates and times in both simple and complex ways. While date and time arithmetic is supported, the @@ -202,7 +200,7 @@ Instance attributes (read-only): Supported operations: -.. % XXX this table is too wide! +.. XXX this table is too wide! +--------------------------------+-----------------------------------------------+ | Operation | Result | diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index fecfdeb86bb..218d1c846ac 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -88,7 +88,7 @@ reset them before monitoring a calculation. * IEEE standard 854-1987, `Unofficial IEEE 854 Text `_. -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-tutorial: @@ -263,7 +263,7 @@ a single cast inside a loop. With context set and decimals created, the bulk of the program manipulates the data no differently than with other Python numeric types. -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-decimal: @@ -274,7 +274,7 @@ Decimal objects .. class:: Decimal([value [, context]]) - Constructs a new :class:`Decimal` object based from *value*. + Construct a new :class:`Decimal` object based from *value*. *value* can be an integer, string, tuple, or another :class:`Decimal` object. If no *value* is given, returns ``Decimal("0")``. If *value* is a string, it @@ -512,7 +512,7 @@ also have a number of specialized methods: correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode. -.. method: Decimal.logb([context]) +.. method:: Decimal.logb([context]) For a nonzero number, return the adjusted exponent of its operand as a :class:`Decimal` instance. If the operand is a zero then @@ -624,7 +624,7 @@ also have a number of specialized methods: .. method:: Decimal.quantize(exp[, rounding[, context[, watchexp]]]) - Returns a value equal to the first operand after rounding and + Return a value equal to the first operand after rounding and having the exponent of the second operand. >>> Decimal("1.41421356").quantize(Decimal("1.000")) @@ -645,8 +645,8 @@ also have a number of specialized methods: the given ``context`` argument; if neither argument is given the rounding mode of the current thread's context is used. - If watchexp is set (default), then an error is returned whenever - the resulting exponent is greater than Emax or less than Etiny. + If *watchexp* is set (default), then an error is returned whenever the + resulting exponent is greater than :attr:`Emax` or less than :attr:`Etiny`. .. method:: Decimal.radix() @@ -657,7 +657,7 @@ also have a number of specialized methods: .. method:: Decimal.remainder_near(other[, context]) - Computes the modulo as either a positive or negative value depending on which is + Compute the modulo as either a positive or negative value depending on which is closest to zero. For instance, ``Decimal(10).remainder_near(6)`` returns ``Decimal("-2")`` which is closer to zero than ``Decimal("4")``. @@ -720,7 +720,7 @@ also have a number of specialized methods: .. method:: Decimal.to_integral_exact([rounding[, context]]) - Round the argument to the nearest integer, signaling + Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` as appropriate if rounding occurs. The rounding mode is determined by the ``rounding`` parameter if given, else by the given ``context``. If neither @@ -730,14 +730,14 @@ also have a number of specialized methods: .. method:: Decimal.to_integral_value([rounding[, context]]) - Rounds to the nearest integer without signaling :const:`Inexact` or + Round to the nearest integer without signaling :const:`Inexact` or :const:`Rounded`. If given, applies *rounding*; otherwise, uses the rounding method in either the supplied *context* or the current context. .. method:: Decimal.trim() - Returns its argument with *insignificant* trailing zeros removed. + Return the decimal with *insignificant* trailing zeros removed. Here, a trailing zero is considered insignificant either if it follows the decimal point, or if the exponent of the argument (that is, the last element of the :meth:`as_tuple` representation) is @@ -755,7 +755,7 @@ operands*. A *logical operand* is a :class:`Decimal` instance whose exponent and sign are both zero, and whose digits are all either :const:`0` or :const:`1`. -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-context: @@ -1023,7 +1023,7 @@ those for the :class:`Decimal` class and are only briefly recounted here. Converts a number to a string using scientific notation. -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-signals: @@ -1144,7 +1144,7 @@ The following table summarizes the hierarchy of signals:: Rounded Subnormal -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-notes: @@ -1241,7 +1241,7 @@ the following calculation returns a value equal to zero:: >>> 1 / Decimal('Infinity') Decimal("0E-1000000026") -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-threads: @@ -1279,7 +1279,7 @@ threads calling :func:`getcontext`. For example:: t3.start() . . . -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-recipes: @@ -1435,7 +1435,7 @@ to work with the :class:`Decimal` class:: return +s -.. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% .. _decimal-faq: diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index fe956b29e3d..3b17d047a08 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -6,9 +6,9 @@ :synopsis: Helpers for computing differences between objects. .. moduleauthor:: Tim Peters .. sectionauthor:: Tim Peters +.. Markup by Fred L. Drake, Jr. -.. % LaTeXification by Fred L. Drake, Jr. . This module provides classes and functions for comparing sequences. It can be used for example, for comparing files, and can produce difference @@ -378,6 +378,12 @@ use :meth:`set_seq2` to set the commonly used sequence once and call then ``i+n != i'`` or ``j+n != j'``; in other words, adjacent triples always describe non-adjacent equal blocks. + .. XXX Explain why a dummy is used! + + .. versionchanged:: 2.5 + The guarantee that adjacent triples always describe non-adjacent blocks was + implemented. + :: >>> s = SequenceMatcher(None, "abxcd", "abcd") diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 26162955540..41cbe7f2a29 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -452,13 +452,6 @@ the more significant byte last. Unpacks TOS into *count* individual values, which are put onto the stack right-to-left. -.. % \begin{opcodedesc}{UNPACK_LIST}{count} -.. % This opcode is obsolete. -.. % \end{opcodedesc} -.. % \begin{opcodedesc}{UNPACK_ARG}{count} -.. % This opcode is obsolete. -.. % \end{opcodedesc} - .. opcode:: DUP_TOPX (count) @@ -486,10 +479,6 @@ the more significant byte last. Works as ``DELETE_NAME``, but deletes a global name. -.. % \begin{opcodedesc}{UNPACK_VARARG}{argc} -.. % This opcode is obsolete. -.. % \end{opcodedesc} - .. opcode:: LOAD_CONST (consti) @@ -577,22 +566,11 @@ the more significant byte last. the iterator indicates it is exhausted ``TOS`` is popped, and the byte code counter is incremented by *delta*. -.. % \begin{opcodedesc}{FOR_LOOP}{delta} -.. % This opcode is obsolete. -.. % \end{opcodedesc} -.. % \begin{opcodedesc}{LOAD_LOCAL}{namei} -.. % This opcode is obsolete. -.. % \end{opcodedesc} - .. opcode:: LOAD_GLOBAL (namei) Loads the global named ``co_names[namei]`` onto the stack. -.. % \begin{opcodedesc}{SET_FUNC_ARGS}{argc} -.. % This opcode is obsolete. -.. % \end{opcodedesc} - .. opcode:: SETUP_LOOP (delta) @@ -690,7 +668,7 @@ the more significant byte last. Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, ``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is - pushed. See the ``slice()`` built-in function for more information. + pushed. See the :func:`slice` built-in function for more information. .. opcode:: EXTENDED_ARG (ext) diff --git a/Doc/library/dl.rst b/Doc/library/dl.rst index ff42619119a..de641e3c623 100644 --- a/Doc/library/dl.rst +++ b/Doc/library/dl.rst @@ -7,9 +7,6 @@ :synopsis: Call C functions in shared objects. .. sectionauthor:: Moshe Zadka - -.. % ?????????? Anyone???????????? - The :mod:`dl` module defines an interface to the :cfunc:`dlopen` function, which is the most common interface on Unix platforms for handling dynamically linked libraries. It allows the program to call arbitrary functions in such a library. diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst index 99a2921e317..04bc219fe74 100644 --- a/Doc/library/doctest.rst +++ b/Doc/library/doctest.rst @@ -691,12 +691,7 @@ even a single character doesn't match, the test fails. This will probably surprise you a few times, as you learn exactly what Python does and doesn't guarantee about output. For example, when printing a dict, Python doesn't guarantee that the key-value pairs will be printed in any particular order, so a -test like - -.. % Hey! What happened to Monty Python examples? -.. % Tim: ask Guido -- it's his example! - -:: +test like :: >>> foo() {"Hermione": "hippogryph", "Harry": "broomstick"} diff --git a/Doc/library/email.rst b/Doc/library/email.rst index df41563d8f2..72fb31d8bb8 100644 --- a/Doc/library/email.rst +++ b/Doc/library/email.rst @@ -1,7 +1,3 @@ -.. % Copyright (C) 2001-2007 Python Software Foundation -.. % Author: barry@python.org (Barry Warsaw) - - :mod:`email` --- An email and MIME handling package =================================================== @@ -10,6 +6,7 @@ including MIME documents. .. moduleauthor:: Barry A. Warsaw .. sectionauthor:: Barry A. Warsaw +.. Copyright (C) 2001-2007 Python Software Foundation The :mod:`email` package is a library for managing email messages, including diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 786e8253702..e7721fa208e 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -111,16 +111,15 @@ The following exceptions are the exceptions that are actually raised. .. exception:: AttributeError - Raised when an attribute reference or assignment fails. (When an object does - not support attribute references or attribute assignments at all, - :exc:`TypeError` is raised.) - - .. % xref to attribute reference? + Raised when an attribute reference (see :ref:`attribute-references`) or + assignment fails. (When an object does not support attribute references or + attribute assignments at all, :exc:`TypeError` is raised.) .. exception:: EOFError - Raised when attempting to read beyond the end of a file. (N.B.: the + Raised when one of the built-in functions (:func:`input` or :func:`raw_input`) + hits an end-of-file condition (EOF) without reading any data. (N.B.: the :meth:`file.read` and :meth:`file.readline` methods return an empty string when they hit EOF.) @@ -162,14 +161,14 @@ The following exceptions are the exceptions that are actually raised. truncated to fall in the allowed range; if an index is not a plain integer, :exc:`TypeError` is raised.) - .. % XXXJH xref to sequences + .. XXX xref to sequences .. exception:: KeyError Raised when a mapping (dictionary) key is not found in the set of existing keys. - .. % XXXJH xref to mapping objects? + .. XXX xref to mapping objects? .. exception:: KeyboardInterrupt diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 02c709c28ff..49fd77d6a32 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -28,7 +28,7 @@ available. They are listed here in alphabetical order. :func:`__import__` function. For example, the statement ``import spam`` results in the following call: - ``__import__('spam',`` ``globals(),`` ``locals(), [], -1)``; the statement + ``__import__('spam', globals(), locals(), [], -1)``; the statement ``from spam.ham import eggs`` results in ``__import__('spam.ham', globals(), locals(), ['eggs'], -1)``. Note that even though ``locals()`` and ``['eggs']`` are passed in as arguments, the :func:`__import__` function does not set the @@ -359,7 +359,7 @@ available. They are listed here in alphabetical order. access to the standard :mod:`builtins` module and restricted environments are propagated. If the *locals* dictionary is omitted it defaults to the *globals* dictionary. If both dictionaries are omitted, the expression is executed in the - environment where :keyword:`eval` is called. The return value is the result of + environment where :func:`eval` is called. The return value is the result of the evaluated expression. Syntax errors are reported as exceptions. Example:: >>> x = 1 @@ -632,7 +632,7 @@ available. They are listed here in alphabetical order. The contents of this dictionary should not be modified; changes may not affect the values of local variables used by the interpreter. - Free variables are returned by *locals* when it is called in a function block. + Free variables are returned by :func:`locals` when it is called in a function block. Modifications of free variables may not affect the values used by the interpreter. Free variables are not returned in class blocks. diff --git a/Doc/library/gensuitemodule.rst b/Doc/library/gensuitemodule.rst index 3fc52542f57..dbbc3a07812 100644 --- a/Doc/library/gensuitemodule.rst +++ b/Doc/library/gensuitemodule.rst @@ -6,9 +6,7 @@ :platform: Mac :synopsis: Create a stub package from an OSA dictionary .. sectionauthor:: Jack Jansen - - -.. % \moduleauthor{Jack Jansen?}{email} +.. moduleauthor:: Jack Jansen The :mod:`gensuitemodule` module creates a Python package implementing stub code for the AppleScript suites that are implemented by a specific application, diff --git a/Doc/library/getopt.rst b/Doc/library/getopt.rst index b7220a53e06..35d91d28dbb 100644 --- a/Doc/library/getopt.rst +++ b/Doc/library/getopt.rst @@ -9,7 +9,7 @@ This module helps scripts to parse the command line arguments in ``sys.argv``. It supports the same conventions as the Unix :cfunc:`getopt` function (including -the special meanings of arguments of the form '``-``' and '``--``'). Long +the special meanings of arguments of the form '``-``' and '``--``'). Long options similar to those supported by GNU software may be used as well via an optional third argument. This module provides a single function and an exception: diff --git a/Doc/library/getpass.rst b/Doc/library/getpass.rst index 9a45b28f87a..bd384b44fa1 100644 --- a/Doc/library/getpass.rst +++ b/Doc/library/getpass.rst @@ -1,4 +1,3 @@ - :mod:`getpass` --- Portable password input ========================================== @@ -6,9 +5,7 @@ :synopsis: Portable reading of passwords and retrieval of the userid. .. moduleauthor:: Piers Lauder .. sectionauthor:: Fred L. Drake, Jr. - - -.. % Windows (& Mac?) support by Guido van Rossum. +.. Windows (& Mac?) support by Guido van Rossum. The :mod:`getpass` module provides two functions: diff --git a/Doc/library/heapq.rst b/Doc/library/heapq.rst index e3b145c459c..f26d29b9d64 100644 --- a/Doc/library/heapq.rst +++ b/Doc/library/heapq.rst @@ -1,4 +1,3 @@ - :mod:`heapq` --- Heap queue algorithm ===================================== @@ -8,9 +7,6 @@ .. sectionauthor:: Guido van Rossum .. sectionauthor:: François Pinard - -.. % Theoretical explanation: - This module provides an implementation of the heap queue algorithm, also known as the priority queue algorithm. diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index 44b59e9f8e5..8209aa961c1 100644 --- a/Doc/library/idle.rst +++ b/Doc/library/idle.rst @@ -1,20 +1,16 @@ .. _idle: -Idle +IDLE ==== .. moduleauthor:: Guido van Rossum - -.. % \declaremodule{standard}{idle} -.. % \modulesynopsis{A Python Integrated Development Environment} - .. index:: - single: Idle + single: IDLE single: Python Editor single: Integrated Development Environment -Idle is the Python IDE built with the :mod:`Tkinter` GUI toolkit. +IDLE is the Python IDE built with the :mod:`Tkinter` GUI toolkit. IDLE has the following features: diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst index dab22e0bbb0..10f3a42cfa3 100644 --- a/Doc/library/imaplib.rst +++ b/Doc/library/imaplib.rst @@ -1,4 +1,3 @@ - :mod:`imaplib` --- IMAP4 protocol client ======================================== @@ -6,6 +5,10 @@ :synopsis: IMAP4 protocol client (requires sockets). .. moduleauthor:: Piers Lauder .. sectionauthor:: Piers Lauder +.. revised by ESR, January 2000 +.. changes for IMAP4_SSL by Tino Lange , March 2002 +.. changes for IMAP4_stream by Piers Lauder , + November 2002 .. index:: @@ -13,14 +16,6 @@ pair: IMAP4_SSL; protocol pair: IMAP4_stream; protocol -.. % Based on HTML documentation by Piers Lauder -.. % ; -.. % converted by Fred L. Drake, Jr. . -.. % Revised by ESR, January 2000. -.. % Changes for IMAP4_SSL by Tino Lange , March 2002 -.. % Changes for IMAP4_stream by Piers Lauder -.. % , November 2002 - This module defines three classes, :class:`IMAP4`, :class:`IMAP4_SSL` and :class:`IMAP4_stream`, which encapsulate a connection to an IMAP4 server and implement a large subset of the IMAP4rev1 client protocol as defined in diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index 54b52e470ab..21f64768484 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -157,7 +157,7 @@ loops that truncate the stream. key = lambda x: x self.keyfunc = key self.it = iter(iterable) - self.tgtkey = self.currkey = self.currvalue = [] + self.tgtkey = self.currkey = self.currvalue = object() def __iter__(self): return self def __next__(self): @@ -350,14 +350,13 @@ loops that truncate the stream. is equivalent to:: def tee(iterable): - def gen(next, data={}, cnt=[0]): + def gen(next, data={}): for i in count(): - if i == cnt[0]: - item = data[i] = next() - cnt[0] += 1 + if i in data: + yield data.pop(i) else: - item = data.pop(i) - yield item + data[i] = next() + yield data[i] it = iter(iterable) return (gen(it.__next__), gen(it.__next__)) diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index 537ac3afef8..a95e2b5c6c6 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -2019,8 +2019,6 @@ Configuration Configuration functions ^^^^^^^^^^^^^^^^^^^^^^^ -.. % - The following functions configure the logging module. They are located in the :mod:`logging.config` module. Their use is optional --- you can configure the logging module using these functions or by making calls to the main API (defined @@ -2204,13 +2202,12 @@ Sections which specify formatter configuration are typified by the following. :: class=logging.Formatter The ``format`` entry is the overall format string, and the ``datefmt`` entry is -the :func:`strftime`\ -compatible date/time format string. If empty, the package -substitutes ISO8601 format date/times, which is almost equivalent to specifying -the date format string "The ISO8601 format also specifies milliseconds, which -are appended to the result of using the above format string, with a comma -separator. An example time in ISO8601 format is ``2003-01-23 00:29:50,411``. - -.. % Y-%m-%d %H:%M:%S". +the :func:`strftime`\ -compatible date/time format string. If empty, the +package substitutes ISO8601 format date/times, which is almost equivalent to +specifying the date format string ``"%Y-%m-%d %H:%M:%S"``. The ISO8601 format +also specifies milliseconds, which are appended to the result of using the above +format string, with a comma separator. An example time in ISO8601 format is +``2003-01-23 00:29:50,411``. The ``class`` entry is optional. It indicates the name of the formatter's class (as a dotted module and class name.) This option is useful for instantiating a diff --git a/Doc/library/mhlib.rst b/Doc/library/mhlib.rst index 0dd53536327..f6edf289c40 100644 --- a/Doc/library/mhlib.rst +++ b/Doc/library/mhlib.rst @@ -1,13 +1,9 @@ - :mod:`mhlib` --- Access to MH mailboxes ======================================= .. module:: mhlib :synopsis: Manipulate MH mailboxes from Python. - - -.. % LaTeX'ized from the comments in the module by Skip Montanaro -.. % . +.. sectionauthor:: Skip Montanaro The :mod:`mhlib` module provides a Python interface to MH folders and their contents. diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst index c3de3d7b47c..761190d66e6 100644 --- a/Doc/library/nntplib.rst +++ b/Doc/library/nntplib.rst @@ -309,8 +309,6 @@ indicates an error, the method raises one of the above exceptions. is supplied, then the returned *list* is an empty list. This is an optional NNTP extension, and may not be supported by all servers. - .. % XXX huh? Should that be (name, description)? - RFC2980 says "It is suggested that this extension be deprecated". Use :meth:`descriptions` or :meth:`description` instead. diff --git a/Doc/library/optparse.rst b/Doc/library/optparse.rst index f5488e70d34..e6668b6b813 100644 --- a/Doc/library/optparse.rst +++ b/Doc/library/optparse.rst @@ -1,7 +1,3 @@ -.. % THIS FILE IS AUTO-GENERATED! DO NOT EDIT! -.. % (Your changes will be lost the next time it is generated.) - - :mod:`optparse` --- More powerful command line option parser ============================================================ @@ -18,9 +14,6 @@ populate it with options, and parse the command line. ``optparse`` allows users to specify options in the conventional GNU/POSIX syntax, and additionally generates usage and help messages for you. -.. % An intro blurb used only when generating LaTeX docs for the Python -.. % manual (based on README.txt). - Here's an example of using ``optparse`` in a simple script:: from optparse import OptionParser @@ -70,8 +63,6 @@ and ``optparse`` will print out a brief summary of your script's options:: where the value of *yourscript* is determined at runtime (normally from ``sys.argv[0]``). -.. % $Id: intro.txt 413 2004-09-28 00:59:13Z greg $ - .. _optparse-background: @@ -233,8 +224,6 @@ you implement, the more flexible your program is, and the more complicated its implementation becomes. Too much flexibility has drawbacks as well, of course; too many options can overwhelm users and make your code much harder to maintain. -.. % $Id: tao.txt 413 2004-09-28 00:59:13Z greg $ - .. _optparse-tutorial: @@ -652,8 +641,6 @@ Here's what :mod:`optparse`\ -based scripts usually look like:: if __name__ == "__main__": main() -.. % $Id: tutorial.txt 515 2006-06-10 15:37:45Z gward $ - .. _optparse-reference-guide: @@ -1329,8 +1316,6 @@ OptionParser supports several other public methods: parser.add_option("--novice", action="store_const", dest="mode", const="novice") -.. % $Id: reference.txt 519 2006-06-11 14:39:11Z gward $ - .. _optparse-option-callbacks: @@ -1626,8 +1611,6 @@ in the arguments following ``"-c"`` will be interpreted as further options (probably causing an error), rather than as arguments to ``"-c"``. Fixing this is left as an exercise for the reader. -.. % $Id: callbacks.txt 415 2004-09-30 02:26:17Z greg $ - .. _optparse-extending-optparse: @@ -1818,6 +1801,3 @@ Features of note: about setting a default value for the option destinations in question; they can just leave the default as None and :meth:`ensure_value` will take care of getting it right when it's needed. - -.. % $Id: extending.txt 517 2006-06-10 16:18:11Z gward $ - diff --git a/Doc/library/os.rst b/Doc/library/os.rst index 2a8325ab4ea..71e5f36bfcb 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -291,9 +291,8 @@ process and user. Set the current process' user id. Availability: Unix. -.. % placed in this section since it relates to errno.... a little weak - +.. placed in this section since it relates to errno.... a little weak .. function:: strerror(code) Return the error message corresponding to the error code in *code*. diff --git a/Doc/library/ossaudiodev.rst b/Doc/library/ossaudiodev.rst index 7be838b6e58..e23b049ae16 100644 --- a/Doc/library/ossaudiodev.rst +++ b/Doc/library/ossaudiodev.rst @@ -11,33 +11,33 @@ This module allows you to access the OSS (Open Sound System) audio interface. OSS is available for a wide range of open-source and commercial Unices, and is the standard audio interface for Linux and recent versions of FreeBSD. -.. % Things will get more complicated for future Linux versions, since -.. % ALSA is in the standard kernel as of 2.5.x. Presumably if you -.. % use ALSA, you'll have to make sure its OSS compatibility layer -.. % is active to use ossaudiodev, but you're gonna need it for the vast -.. % majority of Linux audio apps anyways. -.. % -.. % Sounds like things are also complicated for other BSDs. In response -.. % to my python-dev query, Thomas Wouters said: -.. % -.. % > Likewise, googling shows OpenBSD also uses OSS/Free -- the commercial -.. % > OSS installation manual tells you to remove references to OSS/Free from the -.. % > kernel :) -.. % -.. % but Aleksander Piotrowsk actually has an OpenBSD box, and he quotes -.. % from its : -.. % > * WARNING! WARNING! -.. % > * This is an OSS (Linux) audio emulator. -.. % > * Use the Native NetBSD API for developing new code, and this -.. % > * only for compiling Linux programs. -.. % -.. % There's also an ossaudio manpage on OpenBSD that explains things -.. % further. Presumably NetBSD and OpenBSD have a different standard -.. % audio interface. That's the great thing about standards, there are so -.. % many to choose from ... ;-) -.. % -.. % This probably all warrants a footnote or two, but I don't understand -.. % things well enough right now to write it! --GPW +.. Things will get more complicated for future Linux versions, since + ALSA is in the standard kernel as of 2.5.x. Presumably if you + use ALSA, you'll have to make sure its OSS compatibility layer + is active to use ossaudiodev, but you're gonna need it for the vast + majority of Linux audio apps anyways. + + Sounds like things are also complicated for other BSDs. In response + to my python-dev query, Thomas Wouters said: + + > Likewise, googling shows OpenBSD also uses OSS/Free -- the commercial + > OSS installation manual tells you to remove references to OSS/Free from the + > kernel :) + + but Aleksander Piotrowsk actually has an OpenBSD box, and he quotes + from its : + > * WARNING! WARNING! + > * This is an OSS (Linux) audio emulator. + > * Use the Native NetBSD API for developing new code, and this + > * only for compiling Linux programs. + + There's also an ossaudio manpage on OpenBSD that explains things + further. Presumably NetBSD and OpenBSD have a different standard + audio interface. That's the great thing about standards, there are so + many to choose from ... ;-) + + This probably all warrants a footnote or two, but I don't understand + things well enough right now to write it! --GPW .. seealso:: @@ -87,6 +87,10 @@ the standard audio interface for Linux and recent versions of FreeBSD. second is required. This is a historical artifact for compatibility with the older :mod:`linuxaudiodev` module which :mod:`ossaudiodev` supersedes. + .. XXX it might also be motivated + by my unfounded-but-still-possibly-true belief that the default + audio device varies unpredictably across operating systems. -GW + .. function:: openmixer([device]) diff --git a/Doc/library/othergui.rst b/Doc/library/othergui.rst index 5a84285bdc7..b36568d8352 100644 --- a/Doc/library/othergui.rst +++ b/Doc/library/othergui.rst @@ -5,7 +5,6 @@ Other Graphical User Interface Packages There are an number of extension widget sets to :mod:`Tkinter`. - .. seealso:: `Python megawidgets `_ @@ -29,12 +28,10 @@ There are an number of extension widget sets to :mod:`Tkinter`. since they can operate directly on Python data structures, without having to transfer data through the Tk/Tcl layer. - .. % The major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits that are also available for Python: - .. seealso:: `PyGTK `_ diff --git a/Doc/library/parser.rst b/Doc/library/parser.rst index 9323090ca33..b0e509a137c 100644 --- a/Doc/library/parser.rst +++ b/Doc/library/parser.rst @@ -8,13 +8,12 @@ .. sectionauthor:: Fred L. Drake, Jr. -.. % Copyright 1995 Virginia Polytechnic Institute and State University -.. % and Fred L. Drake, Jr. This copyright notice must be distributed on -.. % all copies, but this document otherwise may be distributed as part -.. % of the Python distribution. No fee may be charged for this document -.. % in any representation, either on paper or electronically. This -.. % restriction does not affect other elements in a distributed package -.. % in any way. +.. Copyright 1995 Virginia Polytechnic Institute and State University and Fred + L. Drake, Jr. This copyright notice must be distributed on all copies, but + this document otherwise may be distributed as part of the Python + distribution. No fee may be charged for this document in any representation, + either on paper or electronically. This restriction does not affect other + elements in a distributed package in any way. .. index:: single: parsing; Python source code diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst index c88fc299d79..7e04f5b985e 100644 --- a/Doc/library/pickle.rst +++ b/Doc/library/pickle.rst @@ -1,4 +1,3 @@ - :mod:`pickle` --- Python object serialization ============================================= @@ -12,10 +11,8 @@ .. module:: pickle :synopsis: Convert Python objects to streams of bytes and back. - - -.. % Substantial improvements by Jim Kerr . -.. % Rewritten by Barry Warsaw +.. sectionauthor:: Jim Kerr . +.. sectionauthor:: Barry Warsaw The :mod:`pickle` module implements a fundamental, but powerful algorithm for serializing and de-serializing a Python object structure. "Pickling" is the @@ -607,10 +604,10 @@ object references without actually instantiating all the objects in a pickle. [#]_ Setting :attr:`persistent_load` to a list is usually used in conjunction with the :meth:`noload` method on the Unpickler. -.. % BAW: Both pickle and cPickle support something called -.. % inst_persistent_id() which appears to give unknown types a second -.. % shot at producing a persistent id. Since Jim Fulton can't remember -.. % why it was added or what it's for, I'm leaving it undocumented. +.. BAW: Both pickle and cPickle support something called inst_persistent_id() + which appears to give unknown types a second shot at producing a persistent + id. Since Jim Fulton can't remember why it was added or what it's for, I'm + leaving it undocumented. .. _pickle-sub: diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst index a6680753f70..cddaa58cad9 100644 --- a/Doc/library/platform.rst +++ b/Doc/library/platform.rst @@ -194,16 +194,12 @@ Windows Platform Win95/98 specific ^^^^^^^^^^^^^^^^^ - .. function:: popen(cmd, mode='r', bufsize=None) Portable :func:`popen` interface. Find a working popen implementation preferring :func:`win32pipe.popen`. On Windows NT, :func:`win32pipe.popen` should work; on Windows 9x it hangs due to bugs in the MS C library. - .. % This KnowledgeBase article appears to be missing... - .. % See also \ulink{MS KnowledgeBase article Q150956}{}. - Mac OS Platform --------------- @@ -231,7 +227,7 @@ Unix Platforms Tries to determine the name of the OS distribution name Returns a tuple ``(distname, version, id)`` which defaults to the args given as parameters. -.. % Document linux_distribution()? +.. XXX Document linux_distribution()? .. function:: libc_ver(executable=sys.executable, lib='', version='', chunksize=2048) diff --git a/Doc/library/poplib.rst b/Doc/library/poplib.rst index b462ec5e453..893296faded 100644 --- a/Doc/library/poplib.rst +++ b/Doc/library/poplib.rst @@ -4,16 +4,11 @@ .. module:: poplib :synopsis: POP3 protocol client (requires sockets). - +.. sectionauthor:: Andrew T. Csillag +.. revised by ESR, January 2000 .. index:: pair: POP3; protocol -.. % By Andrew T. Csillag -.. % Even though I put it into LaTeX, I cannot really claim that I wrote -.. % it since I just stole most of it from the poplib.py source code and -.. % the imaplib ``chapter''. -.. % Revised by ESR, January 2000 - This module defines a class, :class:`POP3`, which encapsulates a connection to a POP3 server and implements the protocol as defined in :rfc:`1725`. The :class:`POP3` class supports both the minimal and optional command sets. diff --git a/Doc/library/pprint.rst b/Doc/library/pprint.rst index 2e4f3f22e46..22407edb880 100644 --- a/Doc/library/pprint.rst +++ b/Doc/library/pprint.rst @@ -24,7 +24,7 @@ Dictionaries are sorted by key before the display is computed. The :mod:`pprint` module defines one class: -.. % First the implementation class: +.. First the implementation class: .. class:: PrettyPrinter(...) @@ -65,8 +65,7 @@ The :mod:`pprint` module defines one class: The :class:`PrettyPrinter` class supports several derivative functions: -.. % Now the derivative functions: - +.. Now the derivative functions: .. function:: pformat(object[, indent[, width[, depth]]]) @@ -123,9 +122,6 @@ One more support function is also defined: recursive reference will be represented as ````. The representation is not otherwise formatted. -.. % This example is outside the {funcdesc} to keep it from running over -.. % the right margin. - :: >>> pprint.saferepr(stuff) diff --git a/Doc/library/profile.rst b/Doc/library/profile.rst index cc0243683af..fe3cadfb5fe 100644 --- a/Doc/library/profile.rst +++ b/Doc/library/profile.rst @@ -72,47 +72,47 @@ is not so far as well-tested and might not be available on all systems. :mod:`cProfile` is really a compatibility layer on top of the internal :mod:`_lsprof` module. -.. % \section{How Is This Profiler Different From The Old Profiler?} -.. % \nodename{Profiler Changes} -.. % -.. % (This section is of historical importance only; the old profiler -.. % discussed here was last seen in Python 1.1.) -.. % -.. % The big changes from old profiling module are that you get more -.. % information, and you pay less CPU time. It's not a trade-off, it's a -.. % trade-up. -.. % -.. % To be specific: -.. % -.. % \begin{description} -.. % -.. % \item[Bugs removed:] -.. % Local stack frame is no longer molested, execution time is now charged -.. % to correct functions. -.. % -.. % \item[Accuracy increased:] -.. % Profiler execution time is no longer charged to user's code, -.. % calibration for platform is supported, file reads are not done \emph{by} -.. % profiler \emph{during} profiling (and charged to user's code!). -.. % -.. % \item[Speed increased:] -.. % Overhead CPU cost was reduced by more than a factor of two (perhaps a -.. % factor of five), lightweight profiler module is all that must be -.. % loaded, and the report generating module (\module{pstats}) is not needed -.. % during profiling. -.. % -.. % \item[Recursive functions support:] -.. % Cumulative times in recursive functions are correctly calculated; -.. % recursive entries are counted. -.. % -.. % \item[Large growth in report generating UI:] -.. % Distinct profiles runs can be added together forming a comprehensive -.. % report; functions that import statistics take arbitrary lists of -.. % files; sorting criteria is now based on keywords (instead of 4 integer -.. % options); reports shows what functions were profiled as well as what -.. % profile file was referenced; output format has been improved. -.. % -.. % \end{description} +.. \section{How Is This Profiler Different From The Old Profiler?} + \nodename{Profiler Changes} + + (This section is of historical importance only; the old profiler + discussed here was last seen in Python 1.1.) + + The big changes from old profiling module are that you get more + information, and you pay less CPU time. It's not a trade-off, it's a + trade-up. + + To be specific: + + \begin{description} + + \item[Bugs removed:] + Local stack frame is no longer molested, execution time is now charged + to correct functions. + + \item[Accuracy increased:] + Profiler execution time is no longer charged to user's code, + calibration for platform is supported, file reads are not done \emph{by} + profiler \emph{during} profiling (and charged to user's code!). + + \item[Speed increased:] + Overhead CPU cost was reduced by more than a factor of two (perhaps a + factor of five), lightweight profiler module is all that must be + loaded, and the report generating module (\module{pstats}) is not needed + during profiling. + + \item[Recursive functions support:] + Cumulative times in recursive functions are correctly calculated; + recursive entries are counted. + + \item[Large growth in report generating UI:] + Distinct profiles runs can be added together forming a comprehensive + report; functions that import statistics take arbitrary lists of + files; sorting criteria is now based on keywords (instead of 4 integer + options); reports shows what functions were profiled as well as what + profile file was referenced; output format has been improved. + + \end{description} .. _profile-instant: @@ -172,7 +172,7 @@ second method sorted all the entries according to the standard module/line/name string that is printed. The third method printed out all the statistics. You might try the following sort calls: -.. % (this is to comply with the semantics of the old profiler). +.. (this is to comply with the semantics of the old profiler). :: @@ -363,6 +363,8 @@ Analysis of the profiler data is done using the :class:`Stats` class. a single report. If additional files need to be combined with data in an existing :class:`Stats` object, the :meth:`add` method can be used. + .. (such as the old system profiler). + .. _profile-stats: @@ -457,7 +459,7 @@ The :class:`Stats` Class (numeric) is used, only one sort key (the numeric key) will be used, and additional arguments will be silently ignored. - .. % For compatibility with the old profiler, + .. For compatibility with the old profiler, .. method:: Stats.reverse_order() @@ -466,8 +468,7 @@ The :class:`Stats` Class within the object. Note that by default ascending vs descending order is properly selected based on the sort key of choice. - .. % This method is provided primarily for - .. % compatibility with the old profiler. + .. This method is provided primarily for compatibility with the old profiler. .. method:: Stats.print_stats([restriction, ...]) diff --git a/Doc/library/py_compile.rst b/Doc/library/py_compile.rst index c81584660fc..de9a80e2a6e 100644 --- a/Doc/library/py_compile.rst +++ b/Doc/library/py_compile.rst @@ -3,11 +3,8 @@ .. module:: py_compile :synopsis: Generate byte-code files from Python source files. - -.. % Documentation based on module docstrings, by Fred L. Drake, Jr. -.. % - - +.. sectionauthor:: Fred L. Drake, Jr. +.. documentation based on module docstrings .. index:: pair: file; byte-code diff --git a/Doc/library/pyclbr.rst b/Doc/library/pyclbr.rst index a052a69d196..788c60cd645 100644 --- a/Doc/library/pyclbr.rst +++ b/Doc/library/pyclbr.rst @@ -24,7 +24,7 @@ in Python, including many standard and optional extension modules. be a sequence, and is used to augment the value of ``sys.path``, which is used to locate module source code. - .. % The 'inpackage' parameter appears to be for internal use only.... + .. The 'inpackage' parameter appears to be for internal use only.... .. function:: readmodule_ex(module[, path]) @@ -35,7 +35,7 @@ in Python, including many standard and optional extension modules. the key ``'__path__'`` in the returned dictionary has as its value a list which contains the package search path. - .. % The 'inpackage' parameter appears to be for internal use only.... + .. The 'inpackage' parameter appears to be for internal use only.... .. _pyclbr-class-objects: diff --git a/Doc/library/pyexpat.rst b/Doc/library/pyexpat.rst index fcb77058674..29ca5407f21 100644 --- a/Doc/library/pyexpat.rst +++ b/Doc/library/pyexpat.rst @@ -7,14 +7,13 @@ .. moduleauthor:: Paul Prescod -.. % Markup notes: -.. % -.. % Many of the attributes of the XMLParser objects are callbacks. -.. % Since signature information must be presented, these are described -.. % using the methoddesc environment. Since they are attributes which -.. % are set by client code, in-text references to these attributes -.. % should be marked using the \member macro and should not include the -.. % parentheses used when marking functions and methods. +.. Markup notes: + + Many of the attributes of the XMLParser objects are callbacks. Since + signature information must be presented, these are described using the method + directive. Since they are attributes which are set by client code, in-text + references to these attributes should be marked using the :member: role. + .. index:: single: Expat diff --git a/Doc/library/re.rst b/Doc/library/re.rst index 88912eb80f2..49c52151375 100644 --- a/Doc/library/re.rst +++ b/Doc/library/re.rst @@ -84,8 +84,6 @@ the null byte using the ``\number`` notation, e.g., ``'\x00'``. The special characters are: -.. % - ``'.'`` (Dot.) In the default mode, this matches any character except a newline. If the :const:`DOTALL` flag has been specified, this matches any character @@ -297,8 +295,6 @@ The special sequences consist of ``'\'`` and a character from the list below. If the ordinary character is not on the list, then the resulting RE will match the second character. For example, ``\$`` matches the character ``'$'``. -.. % - ``\number`` Matches the contents of the group of the same number. Groups are numbered starting from 1. For example, ``(.+) \1`` matches ``'the the'`` or ``'55 55'``, @@ -384,9 +380,6 @@ there are three octal digits, it is considered an octal escape. Otherwise, it is a group reference. As for string literals, octal escapes are always at most three digits in length. -.. % Note the lack of a period in the section title; it causes problems -.. % with readers of the GNU info version. See http://www.python.org/sf/581414. - .. _matching-searching: @@ -406,15 +399,11 @@ beginning with ``'^'``: ``'^'`` matches only at the start of the string, or in :const:`MULTILINE` mode also immediately following a newline. The "match" operation succeeds only if the pattern matches at the start of the string regardless of mode, or at the starting position given by the optional *pos* -argument regardless of whether a newline precedes it. - -.. % Examples from Tim Peters: - -:: +argument regardless of whether a newline precedes it. :: >>> re.match("c", "abcdef") # No match >>> re.search("c", "abcdef") - <_sre.SRE_Match object at 0x827e9c0> # Match + <_sre.SRE_Match object at 0x827e9c0> # Match .. _contents-of-module-re: @@ -450,10 +439,9 @@ form. but the version using :func:`compile` is more efficient when the expression will be used several times in a single program. - .. % (The compiled version of the last pattern passed to - .. % \function{re.match()} or \function{re.search()} is cached, so - .. % programs that use only a single regular expression at a time needn't - .. % worry about compiling regular expressions.) + .. (The compiled version of the last pattern passed to :func:`re.match` or + :func:`re.search` is cached, so programs that use only a single regular + expression at a time needn't worry about compiling regular expressions.) .. data:: I diff --git a/Doc/library/sched.rst b/Doc/library/sched.rst index c262a8dd637..57f9b5cb7cf 100644 --- a/Doc/library/sched.rst +++ b/Doc/library/sched.rst @@ -1,4 +1,3 @@ - :mod:`sched` --- Event scheduler ================================ @@ -6,9 +5,6 @@ :synopsis: General purpose event scheduler. .. sectionauthor:: Moshe Zadka - -.. % LaTeXed and enhanced from comments in file - .. index:: single: event scheduling The :mod:`sched` module defines a class which implements a general purpose event diff --git a/Doc/library/select.rst b/Doc/library/select.rst index f68a0da0915..4a971792019 100644 --- a/Doc/library/select.rst +++ b/Doc/library/select.rst @@ -58,8 +58,6 @@ The module defines the following: class yourself, as long as it has an appropriate :meth:`fileno` method (that really returns a file descriptor, not just a random integer). - .. % - .. note:: .. index:: single: WinSock diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst index 3fdaa1f4d69..3275179c4ee 100644 --- a/Doc/library/shutil.rst +++ b/Doc/library/shutil.rst @@ -5,9 +5,7 @@ .. module:: shutil :synopsis: High-level file operations, including copying. .. sectionauthor:: Fred L. Drake, Jr. - - -.. % partly based on the docstrings +.. partly based on the docstrings .. index:: single: file; copying diff --git a/Doc/library/sndhdr.rst b/Doc/library/sndhdr.rst index 90d71a9ef5e..01a3917a32c 100644 --- a/Doc/library/sndhdr.rst +++ b/Doc/library/sndhdr.rst @@ -5,9 +5,7 @@ .. module:: sndhdr :synopsis: Determine type of a sound file. .. sectionauthor:: Fred L. Drake, Jr. - - -.. % Based on comments in the module source file. +.. Based on comments in the module source file. .. index:: single: A-LAW diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index 5c3d9f67ea4..a6557e104fe 100644 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -542,7 +542,7 @@ correspond to Unix system calls applicable to sockets. file object and socket object may be closed or garbage-collected independently. The socket must be in blocking mode (it can not have a timeout). The optional *mode* and *bufsize* arguments are interpreted the same way as by the built-in - :func:`file` function; see :ref:`built-in-funcs` for more information. + :func:`file` function. .. method:: socket.recv(bufsize[, flags]) diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst index 96fae6bfe6f..c900ea71581 100644 --- a/Doc/library/socketserver.rst +++ b/Doc/library/socketserver.rst @@ -115,9 +115,8 @@ next (or whether to handle a new incoming request). This is particularly important for stream services where each client can potentially be connected for a long time (if threads or subprocesses cannot be used). -.. % XXX should data and methods be intermingled, or separate? -.. % how should the distinction between class and instance variables be -.. % drawn? +.. XXX should data and methods be intermingled, or separate? + how should the distinction between class and instance variables be drawn? Server Objects @@ -171,8 +170,7 @@ Server Objects The server classes support the following class variables: -.. % XXX should class variables be covered before instance variables, or -.. % vice versa? +.. XXX should class variables be covered before instance variables, or vice versa? .. data:: allow_reuse_address @@ -199,8 +197,8 @@ There are various server methods that can be overridden by subclasses of base server classes like :class:`TCPServer`; these methods aren't useful to external users of the server object. -.. % should the default implementations of these be documented, or should -.. % it be assumed that the user will look at SocketServer.py? +.. XXX should the default implementations of these be documented, or should + it be assumed that the user will look at SocketServer.py? .. function:: finish_request() @@ -230,9 +228,9 @@ users of the server object. or thread to handle the request; the :class:`ForkingMixIn` and :class:`ThreadingMixIn` classes do this. -.. % Is there any point in documenting the following two functions? -.. % What would the purpose of overriding them be: initializing server -.. % instance variables, adding new network families? +.. Is there any point in documenting the following two functions? + What would the purpose of overriding them be: initializing server + instance variables, adding new network families? .. function:: server_activate() diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst index 0b569bf3c16..9d12d34c5ec 100644 --- a/Doc/library/sqlite3.rst +++ b/Doc/library/sqlite3.rst @@ -349,7 +349,7 @@ A :class:`Connection` instance has the following attributes and methods: memory overhead. It will probably be better than your own custom dictionary-based approach or even a db_row based solution. - .. % XXX what's a db_row-based solution? + .. XXX what's a db_row-based solution? .. attribute:: Connection.text_factory diff --git a/Doc/library/statvfs.rst b/Doc/library/statvfs.rst index 6ec7c388064..0b32f654c74 100644 --- a/Doc/library/statvfs.rst +++ b/Doc/library/statvfs.rst @@ -1,4 +1,3 @@ - :mod:`statvfs` --- Constants used with :func:`os.statvfs` ========================================================= @@ -7,8 +6,6 @@ .. sectionauthor:: Moshe Zadka -.. % LaTeX'ed from comments in module - The :mod:`statvfs` module defines constants so interpreting the result if :func:`os.statvfs`, which returns a tuple, can be made without remembering "magic numbers." Each of the constants defined in this module is the *index* of diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index 196ad49c9ed..9763cba7386 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -161,6 +161,24 @@ This table summarizes the comparison operations: | ``is not`` | negated object identity | | +------------+-------------------------+-------+ +.. index:: + pair: operator; comparison + operator: == + operator: < + operator: <= + operator: > + operator: >= + operator: != + operator: is + operator: is not + +Notes: + +(1) + ``!=`` can also be written ``<>``, but this is an obsolete usage + kept for backwards compatibility only. New code should always use + ``!=``. + .. index:: pair: object; numeric pair: objects; comparing @@ -335,8 +353,8 @@ Notes: .. versionadded:: 2.6 - -.. % XXXJH exceptions: overflow (when? what operations?) zerodivision + +.. XXXJH exceptions: overflow (when? what operations?) zerodivision .. _bitstring-ops: @@ -1154,6 +1172,8 @@ Notes: Since Python strings have an explicit length, ``%s`` conversions do not assume that ``'\0'`` is the end of the string. +.. XXX Examples? + For safety reasons, floating point precisions are clipped to 50; ``%f`` conversions for numbers whose absolute value is over 1e25 are replaced by ``%g`` conversions. [#]_ All other errors raise exceptions. @@ -1845,8 +1865,7 @@ File Objects .. XXX this is quite out of date, must be updated with "io" module File objects are implemented using C's ``stdio`` package and can be -created with the built-in :func:`file` and (more usually) :func:`open` -constructors described in the :ref:`built-in-funcs` section. [#]_ File +created with the built-in :func:`open` function. File objects are also returned by some other built-in functions and methods, such as :func:`os.popen` and :func:`os.fdopen` and the :meth:`makefile` method of socket objects. Temporary files can be created using the @@ -1870,7 +1889,7 @@ Files have the following methods: As of Python 2.5, you can avoid having to call this method explicitly if you use the :keyword:`with` statement. For example, the following code will - automatically close ``f`` when the :keyword:`with` block is exited:: + automatically close *f* when the :keyword:`with` block is exited:: from __future__ import with_statement @@ -1998,6 +2017,9 @@ Files have the following methods: Note that not all file objects are seekable. + .. versionchanged:: 2.6 + Passing float values as offset has been deprecated. + .. method:: file.tell() @@ -2407,9 +2429,6 @@ types, where they are relevant. Some of these are not reported by the strings of meaningless digits without hampering correct use and without having to know the exact precision of floating point values on a particular machine. -.. [#] :func:`file` is new in Python 2.2. The older built-in :func:`open` is an alias - for :func:`file`. - .. [#] The advantage of leaving the newline on is that returning an empty string is then an unambiguous EOF indication. It is also possible (in cases where it might matter, for example, if you want to make an exact copy of a file while diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst index 9e527f15115..ee568e62411 100644 --- a/Doc/library/struct.rst +++ b/Doc/library/struct.rst @@ -175,7 +175,7 @@ For example, Motorola and Sun processors are big-endian; Intel and DEC processors are little-endian. Native size and alignment are determined using the C compiler's -:keyword:`sizeof` expression. This is always combined with native byte order. +``sizeof`` expression. This is always combined with native byte order. Standard size and alignment are as follows: no alignment is required for any type (so you have to use pad bytes); :ctype:`short` is 2 bytes; :ctype:`int` and diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 368bd4cf2e9..02059379907 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -458,9 +458,8 @@ always available. implementation and, where needed, by :mod:`sitecustomize`. Once used by the :mod:`site` module, it is removed from the :mod:`sys` module's namespace. - .. % Note that \refmodule{site} is not imported if - .. % the \programopt{-S} option is passed to the interpreter, in which - .. % case this function will remain available. + .. Note that :mod:`site` is not imported if the :option:`-S` option is passed + to the interpreter, in which case this function will remain available. .. function:: setdlopenflags(n) diff --git a/Doc/library/tabnanny.rst b/Doc/library/tabnanny.rst index 4402e78ce64..f43659f3330 100644 --- a/Doc/library/tabnanny.rst +++ b/Doc/library/tabnanny.rst @@ -8,9 +8,7 @@ .. moduleauthor:: Tim Peters .. sectionauthor:: Peter Funk - -.. % rudimentary documentation based on module comments, by Peter Funk -.. % +.. rudimentary documentation based on module comments For the time being this module is intended to be called as a script. However it is possible to import it into an IDE and use the function :func:`check` @@ -55,14 +53,11 @@ described below. This function is used by :func:`check` as a callback parameter to the function :func:`tokenize.tokenize`. -.. % XXX FIXME: Document \function{errprint}, -.. % \function{format_witnesses} \class{Whitespace} -.. % check_equal, indents -.. % \function{reset_globals} +.. XXX document errprint, format_witnesses, Whitespace, check_equal, indents, + reset_globals .. seealso:: Module :mod:`tokenize` Lexical scanner for Python source code. - diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index 5f181559399..9f049c11dd8 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -205,10 +205,6 @@ details. `GNU tar manual, Basic Tar Format `_ Documentation for tar archive files, including GNU tar extensions. -.. % ----------------- -.. % TarFile Objects -.. % ----------------- - .. _tarfile-objects: @@ -421,10 +417,6 @@ object, see :ref:`tarinfo-objects` for details. A dictionary containing key-value pairs of pax global headers. -.. % ----------------- -.. % TarInfo Objects -.. % ----------------- - .. _tarinfo-objects: @@ -574,10 +566,6 @@ A :class:`TarInfo` object also provides some convenient query methods: Return :const:`True` if it is one of character device, block device or FIFO. -.. % ------------------------ -.. % Examples -.. % ------------------------ - .. _tar-examples: @@ -635,10 +623,6 @@ The *only* way to extract an uncompressed tar stream from ``sys.stdin``:: tar.extract(tarinfo) tar.close() -.. % ------------ -.. % Tar format -.. % ------------ - .. _tar-formats: @@ -679,11 +663,6 @@ created: * The SunOS tar extended format. This format is a variant of the POSIX.1-2001 pax format, but is not compatible. -.. % ---------------- -.. % Unicode issues -.. % ---------------- - - .. _tar-unicode: Unicode issues diff --git a/Doc/library/test.rst b/Doc/library/test.rst index 1ba481022d0..a0f7841bcaf 100644 --- a/Doc/library/test.rst +++ b/Doc/library/test.rst @@ -33,8 +33,6 @@ written using a "traditional" testing style that compares output printed to Writing Unit Tests for the :mod:`test` package ---------------------------------------------- -.. % - It is preferred that tests that use the :mod:`unittest` module follow a few guidelines. One is to name the test module by starting it with ``test_`` and end it with the name of the module being tested. The test methods in the test module diff --git a/Doc/library/thread.rst b/Doc/library/thread.rst index 6c5995414c2..867a1ff1370 100644 --- a/Doc/library/thread.rst +++ b/Doc/library/thread.rst @@ -63,12 +63,13 @@ It defines the following constant and functions: Raise the :exc:`SystemExit` exception. When not caught, this will cause the thread to exit silently. -.. % \begin{funcdesc}{exit_prog}{status} -.. % Exit all threads and report the value of the integer argument -.. % \var{status} as the exit status of the entire program. -.. % \strong{Caveat:} code in pending \keyword{finally} clauses, in this thread -.. % or in other threads, is not executed. -.. % \end{funcdesc} +.. + function:: exit_prog(status) + + Exit all threads and report the value of the integer argument + *status* as the exit status of the entire program. + **Caveat:** code in pending :keyword:`finally` clauses, in this thread + or in other threads, is not executed. .. function:: allocate_lock() diff --git a/Doc/library/tix.rst b/Doc/library/tix.rst index abe3ca5df23..f4bb20f8712 100644 --- a/Doc/library/tix.rst +++ b/Doc/library/tix.rst @@ -88,7 +88,7 @@ introduces over 40 widget classes to the :mod:`Tkinter` repertoire. There is a demo of all the :mod:`Tix` widgets in the :file:`Demo/tix` directory of the standard distribution. -.. % The Python sample code is still being added to Python, hence commented out +.. The Python sample code is still being added to Python, hence commented out Basic Widgets @@ -103,8 +103,8 @@ Basic Widgets widget to which a Balloon widget has been bound, a small pop-up window with a descriptive message will be shown on the screen. -.. % Python Demo of: -.. % \ulink{Balloon}{http://tix.sourceforge.net/dist/current/demos/samples/Balloon.tcl} +.. Python Demo of: +.. \ulink{Balloon}{http://tix.sourceforge.net/dist/current/demos/samples/Balloon.tcl} .. class:: ButtonBox() @@ -113,8 +113,8 @@ Basic Widgets `_ widget creates a box of buttons, such as is commonly used for ``Ok Cancel``. -.. % Python Demo of: -.. % \ulink{ButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/BtnBox.tcl} +.. Python Demo of: +.. \ulink{ButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/BtnBox.tcl} .. class:: ComboBox() @@ -125,8 +125,8 @@ Basic Widgets choice by either typing in the entry subwdget or selecting from the listbox subwidget. -.. % Python Demo of: -.. % \ulink{ComboBox}{http://tix.sourceforge.net/dist/current/demos/samples/ComboBox.tcl} +.. Python Demo of: +.. \ulink{ComboBox}{http://tix.sourceforge.net/dist/current/demos/samples/ComboBox.tcl} .. class:: Control() @@ -138,8 +138,8 @@ Basic Widgets the entry. The new value will be checked against the user-defined upper and lower limits. -.. % Python Demo of: -.. % \ulink{Control}{http://tix.sourceforge.net/dist/current/demos/samples/Control.tcl} +.. Python Demo of: +.. \ulink{Control}{http://tix.sourceforge.net/dist/current/demos/samples/Control.tcl} .. class:: LabelEntry() @@ -149,8 +149,8 @@ Basic Widgets widget packages an entry widget and a label into one mega widget. It can be used be used to simplify the creation of "entry-form" type of interface. -.. % Python Demo of: -.. % \ulink{LabelEntry}{http://tix.sourceforge.net/dist/current/demos/samples/LabEntry.tcl} +.. Python Demo of: +.. \ulink{LabelEntry}{http://tix.sourceforge.net/dist/current/demos/samples/LabEntry.tcl} .. class:: LabelFrame() @@ -161,8 +161,8 @@ Basic Widgets widgets inside a LabelFrame widget, one creates the new widgets relative to the :attr:`frame` subwidget and manage them inside the :attr:`frame` subwidget. -.. % Python Demo of: -.. % \ulink{LabelFrame}{http://tix.sourceforge.net/dist/current/demos/samples/LabFrame.tcl} +.. Python Demo of: +.. \ulink{LabelFrame}{http://tix.sourceforge.net/dist/current/demos/samples/LabFrame.tcl} .. class:: Meter() @@ -172,8 +172,8 @@ Basic Widgets can be used to show the progress of a background job which may take a long time to execute. -.. % Python Demo of: -.. % \ulink{Meter}{http://tix.sourceforge.net/dist/current/demos/samples/Meter.tcl} +.. Python Demo of: +.. \ulink{Meter}{http://tix.sourceforge.net/dist/current/demos/samples/Meter.tcl} .. class:: OptionMenu() @@ -182,8 +182,8 @@ Basic Widgets `_ creates a menu button of options. -.. % Python Demo of: -.. % \ulink{OptionMenu}{http://tix.sourceforge.net/dist/current/demos/samples/OptMenu.tcl} +.. Python Demo of: +.. \ulink{OptionMenu}{http://tix.sourceforge.net/dist/current/demos/samples/OptMenu.tcl} .. class:: PopupMenu() @@ -194,8 +194,8 @@ Basic Widgets of the :mod:`Tix` :class:`PopupMenu` widget is it requires less application code to manipulate. -.. % Python Demo of: -.. % \ulink{PopupMenu}{http://tix.sourceforge.net/dist/current/demos/samples/PopMenu.tcl} +.. Python Demo of: +.. \ulink{PopupMenu}{http://tix.sourceforge.net/dist/current/demos/samples/PopMenu.tcl} .. class:: Select() @@ -205,8 +205,8 @@ Basic Widgets is a container of button subwidgets. It can be used to provide radio-box or check-box style of selection options for the user. -.. % Python Demo of: -.. % \ulink{Select}{http://tix.sourceforge.net/dist/current/demos/samples/Select.tcl} +.. Python Demo of: +.. \ulink{Select}{http://tix.sourceforge.net/dist/current/demos/samples/Select.tcl} .. class:: StdButtonBox() @@ -215,8 +215,8 @@ Basic Widgets `_ widget is a group of standard buttons for Motif-like dialog boxes. -.. % Python Demo of: -.. % \ulink{StdButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/StdBBox.tcl} +.. Python Demo of: +.. \ulink{StdButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/StdBBox.tcl} File Selectors @@ -231,8 +231,8 @@ File Selectors sub-directories. The user can choose one of the directories displayed in the list or change to another directory. -.. % Python Demo of: -.. % \ulink{DirList}{http://tix.sourceforge.net/dist/current/demos/samples/DirList.tcl} +.. Python Demo of: +.. \ulink{DirList}{http://tix.sourceforge.net/dist/current/demos/samples/DirList.tcl} .. class:: DirTree() @@ -243,8 +243,8 @@ File Selectors sub-directories. The user can choose one of the directories displayed in the list or change to another directory. -.. % Python Demo of: -.. % \ulink{DirTree}{http://tix.sourceforge.net/dist/current/demos/samples/DirTree.tcl} +.. Python Demo of: +.. \ulink{DirTree}{http://tix.sourceforge.net/dist/current/demos/samples/DirTree.tcl} .. class:: DirSelectDialog() @@ -255,8 +255,8 @@ File Selectors can use this dialog window to navigate through the file system to select the desired directory. -.. % Python Demo of: -.. % \ulink{DirSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/DirDlg.tcl} +.. Python Demo of: +.. \ulink{DirSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/DirDlg.tcl} .. class:: DirSelectBox() @@ -276,8 +276,8 @@ File Selectors :class:`ExFileSelectBox` widget is very similar to the standard file dialog on MS Windows 3.1. -.. % Python Demo of: -.. % \ulink{ExFileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/EFileDlg.tcl} +.. Python Demo of: +.. \ulink{ExFileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/EFileDlg.tcl} .. class:: FileSelectBox() @@ -289,8 +289,8 @@ File Selectors selected into a :class:`ComboBox` widget so that they can be quickly selected again. -.. % Python Demo of: -.. % \ulink{FileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/FileDlg.tcl} +.. Python Demo of: +.. \ulink{FileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/FileDlg.tcl} .. class:: FileEntry() @@ -301,8 +301,8 @@ File Selectors manually. Alternatively, the user can press the button widget that sits next to the entry, which will bring up a file selection dialog. -.. % Python Demo of: -.. % \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl} +.. Python Demo of: +.. \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl} Hierachical ListBox @@ -317,8 +317,8 @@ Hierachical ListBox file system directory trees. The list entries are indented and connected by branch lines according to their places in the hierarchy. -.. % Python Demo of: -.. % \ulink{HList}{http://tix.sourceforge.net/dist/current/demos/samples/HList1.tcl} +.. Python Demo of: +.. \ulink{HList}{http://tix.sourceforge.net/dist/current/demos/samples/HList1.tcl} .. class:: CheckList() @@ -329,12 +329,12 @@ Hierachical ListBox similarly to the Tk checkbutton or radiobutton widgets, except it is capable of handling many more items than checkbuttons or radiobuttons. -.. % Python Demo of: -.. % \ulink{ CheckList}{http://tix.sourceforge.net/dist/current/demos/samples/ChkList.tcl} -.. % Python Demo of: -.. % \ulink{ScrolledHList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList.tcl} -.. % Python Demo of: -.. % \ulink{ScrolledHList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList2.tcl} +.. Python Demo of: +.. \ulink{ CheckList}{http://tix.sourceforge.net/dist/current/demos/samples/ChkList.tcl} +.. Python Demo of: +.. \ulink{ScrolledHList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList.tcl} +.. Python Demo of: +.. \ulink{ScrolledHList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList2.tcl} .. class:: Tree() @@ -344,10 +344,10 @@ Hierachical ListBox can be used to display hierarchical data in a tree form. The user can adjust the view of the tree by opening or closing parts of the tree. -.. % Python Demo of: -.. % \ulink{Tree}{http://tix.sourceforge.net/dist/current/demos/samples/Tree.tcl} -.. % Python Demo of: -.. % \ulink{Tree (Dynamic)}{http://tix.sourceforge.net/dist/current/demos/samples/DynTree.tcl} +.. Python Demo of: +.. \ulink{Tree}{http://tix.sourceforge.net/dist/current/demos/samples/Tree.tcl} +.. Python Demo of: +.. \ulink{Tree (Dynamic)}{http://tix.sourceforge.net/dist/current/demos/samples/DynTree.tcl} Tabular ListBox @@ -364,18 +364,18 @@ Tabular ListBox in a two dimensional format and (2) you can use graphical images as well as multiple colors and fonts for the list entries. -.. % Python Demo of: -.. % \ulink{ScrolledTList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/STList1.tcl} -.. % Python Demo of: -.. % \ulink{ScrolledTList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/STList2.tcl} -.. % Grid has yet to be added to Python -.. % \subsubsection{Grid Widget} -.. % Python Demo of: -.. % \ulink{Simple Grid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid0.tcl} -.. % Python Demo of: -.. % \ulink{ScrolledGrid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid1.tcl} -.. % Python Demo of: -.. % \ulink{Editable Grid}{http://tix.sourceforge.net/dist/current/demos/samples/EditGrid.tcl} +.. Python Demo of: +.. \ulink{ScrolledTList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/STList1.tcl} +.. Python Demo of: +.. \ulink{ScrolledTList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/STList2.tcl} +.. Grid has yet to be added to Python +.. \subsubsection{Grid Widget} +.. Python Demo of: +.. \ulink{Simple Grid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid0.tcl} +.. Python Demo of: +.. \ulink{ScrolledGrid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid1.tcl} +.. Python Demo of: +.. \ulink{Editable Grid}{http://tix.sourceforge.net/dist/current/demos/samples/EditGrid.tcl} Manager Widgets @@ -390,8 +390,8 @@ Manager Widgets The panes can be arranged either vertically or horizontally. The user changes the sizes of the panes by dragging the resize handle between two panes. -.. % Python Demo of: -.. % \ulink{PanedWindow}{http://tix.sourceforge.net/dist/current/demos/samples/PanedWin.tcl} +.. Python Demo of: +.. \ulink{PanedWindow}{http://tix.sourceforge.net/dist/current/demos/samples/PanedWin.tcl} .. class:: ListNoteBook() @@ -404,8 +404,8 @@ Manager Widgets can be shown. The user can navigate through these pages by choosing the name of the desired page in the :attr:`hlist` subwidget. -.. % Python Demo of: -.. % \ulink{ListNoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/ListNBK.tcl} +.. Python Demo of: +.. \ulink{ListNoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/ListNBK.tcl} .. class:: NoteBook() @@ -417,18 +417,18 @@ Manager Widgets these pages can be shown. The user can navigate through these pages by choosing the visual "tabs" at the top of the NoteBook widget. -.. % Python Demo of: -.. % \ulink{NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/NoteBook.tcl} +.. Python Demo of: +.. \ulink{NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/NoteBook.tcl} -.. % \subsubsection{Scrolled Widgets} -.. % Python Demo of: -.. % \ulink{ScrolledListBox}{http://tix.sourceforge.net/dist/current/demos/samples/SListBox.tcl} -.. % Python Demo of: -.. % \ulink{ScrolledText}{http://tix.sourceforge.net/dist/current/demos/samples/SText.tcl} -.. % Python Demo of: -.. % \ulink{ScrolledWindow}{http://tix.sourceforge.net/dist/current/demos/samples/SWindow.tcl} -.. % Python Demo of: -.. % \ulink{Canvas Object View}{http://tix.sourceforge.net/dist/current/demos/samples/CObjView.tcl} +.. \subsubsection{Scrolled Widgets} +.. Python Demo of: +.. \ulink{ScrolledListBox}{http://tix.sourceforge.net/dist/current/demos/samples/SListBox.tcl} +.. Python Demo of: +.. \ulink{ScrolledText}{http://tix.sourceforge.net/dist/current/demos/samples/SText.tcl} +.. Python Demo of: +.. \ulink{ScrolledWindow}{http://tix.sourceforge.net/dist/current/demos/samples/SWindow.tcl} +.. Python Demo of: +.. \ulink{Canvas Object View}{http://tix.sourceforge.net/dist/current/demos/samples/CObjView.tcl} Image Types @@ -440,10 +440,10 @@ The :mod:`Tix` module adds: capabilities to all :mod:`Tix` and :mod:`Tkinter` widgets to create color images from XPM files. - .. % Python Demo of: - .. % \ulink{XPM Image In Button}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm.tcl} - .. % Python Demo of: - .. % \ulink{XPM Image In Menu}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm1.tcl} + .. Python Demo of: + .. \ulink{XPM Image In Button}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm.tcl} + .. Python Demo of: + .. \ulink{XPM Image In Menu}{http://tix.sourceforge.net/dist/current/demos/samples/Xpm1.tcl} * `Compound `_ image @@ -453,14 +453,14 @@ The :mod:`Tix` module adds: display a bitmap and a text string simultaneously in a Tk :class:`Button` widget. - .. % Python Demo of: - .. % \ulink{Compound Image In Buttons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg.tcl} - .. % Python Demo of: - .. % \ulink{Compound Image In NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg2.tcl} - .. % Python Demo of: - .. % \ulink{Compound Image Notebook Color Tabs}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg4.tcl} - .. % Python Demo of: - .. % \ulink{Compound Image Icons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg3.tcl} + .. Python Demo of: + .. \ulink{Compound Image In Buttons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg.tcl} + .. Python Demo of: + .. \ulink{Compound Image In NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg2.tcl} + .. Python Demo of: + .. \ulink{Compound Image Notebook Color Tabs}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg4.tcl} + .. Python Demo of: + .. \ulink{Compound Image Icons}{http://tix.sourceforge.net/dist/current/demos/samples/CmpImg3.tcl} Miscellaneous Widgets diff --git a/Doc/library/tk.rst b/Doc/library/tk.rst index bb852d2d887..3e2f1003c19 100644 --- a/Doc/library/tk.rst +++ b/Doc/library/tk.rst @@ -36,8 +36,8 @@ libraries, see the :ref:`other-gui-packages` section. idle.rst othergui.rst -.. % Other sections I have in mind are -.. % Tkinter internals -.. % Freezing Tkinter applications +.. Other sections I have in mind are + Tkinter internals + Freezing Tkinter applications diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst index f6c5c61a38f..4d5cce86430 100644 --- a/Doc/library/tkinter.rst +++ b/Doc/library/tkinter.rst @@ -59,7 +59,7 @@ Or, more often:: widget of Tk which usually is the main window of an application. Each instance has its own associated Tcl interpreter. - .. % FIXME: The following keyword arguments are currently recognized: + .. FIXME: The following keyword arguments are currently recognized: .. function:: Tcl(screenName=None, baseName=None, className='Tk', useTk=0) @@ -114,8 +114,6 @@ This section is not designed to be an exhaustive tutorial on either Tk or Tkinter. Rather, it is intended as a stop gap, providing some introductory orientation on the system. -.. % Converted to LaTeX by Mike Clarkson. - Credits: * Tkinter was written by Steen Lumholt and Guido van Rossum. @@ -218,8 +216,6 @@ The class hierarchy looks complicated, but in actual practice, application programmers almost always refer to the classes at the very bottom of the hierarchy. -.. % BriefTclTk.html - Notes: * These classes are provided for the purposes of organizing certain functions @@ -334,13 +330,6 @@ the Form geometry manager. :: How Tk and Tkinter are Related ------------------------------ -.. % Relationship.html - -.. note:: - - This was derived from a graphical image; the image will be used more directly in - a subsequent version of this document. - From the top down: Your App Here (Python) @@ -453,8 +442,6 @@ The Packer .. index:: single: packing (widgets) -.. % Packer.html - The packer is one of Tk's geometry-management mechanisms. Geometry managers are used to specify the relative positioning of the positioning of widgets within their container - their mutual *master*. In contrast to the more @@ -463,8 +450,6 @@ packer takes qualitative relationship specification - *above*, *to the left of*, *filling*, etc - and works everything out to determine the exact placement coordinates for you. -.. % See also \citetitle[classes/ClassPacker.html]{the Packer class interface}. - The size of any *master* widget is determined by the size of the "slave widgets" inside. The packer is used to control where slave widgets appear inside the master into which they are packed. You can pack widgets into frames, and frames @@ -521,8 +506,6 @@ options are ``variable``, ``textvariable``, ``onvalue``, ``offvalue``, and ``value``. This connection works both ways: if the variable changes for any reason, the widget it's connected to will be updated to reflect the new value. -.. % VarCouplings.html - Unfortunately, in the current implementation of :mod:`Tkinter` it is not possible to hand over an arbitrary Python variable to a widget through a ``variable`` or ``textvariable`` option. The only kinds of variables for which @@ -569,8 +552,6 @@ The Window Manager .. index:: single: window manager (widgets) -.. % WindowMgr.html - In Tk, there is a utility command, ``wm``, for interacting with the window manager. Options to the ``wm`` command allow you to control things like titles, placement, icon bitmaps, and the like. In :mod:`Tkinter`, these commands have @@ -585,8 +566,6 @@ window that contains an arbitrary widget, you can call the :meth:`_root` method. This method begins with an underscore to denote the fact that this function is part of the implementation, and not an interface to Tk functionality. -.. % See also \citetitle[classes/ClassWm.html]{the Wm class interface}. - Here are some examples of typical usage:: from Tkinter import * @@ -614,8 +593,6 @@ Tk Option Data Types .. index:: single: Tk Option Data Types -.. % OptionTypes.html - anchor Legal values are points of the compass: ``"n"``, ``"ne"``, ``"e"``, ``"se"``, ``"s"``, ``"sw"``, ``"w"``, ``"nw"``, and also ``"center"``. @@ -695,8 +672,6 @@ Bindings and Events single: bind (widgets) single: events (widgets) -.. % Bindings.html - The bind method from the widget command allows you to watch for certain events and to have a callback function trigger when that event type occurs. The form of the bind method is:: @@ -752,8 +727,6 @@ A number of widgets require"index" parameters to be passed. These are used to point at a specific place in a Text widget, or to particular characters in an Entry widget, or to particular menu items in a Menu widget. -.. % Index.html - Entry widget indexes (index, view index, etc.) Entry widgets have options that refer to character positions in the text being displayed. You can use these :mod:`Tkinter` functions to access these special diff --git a/Doc/library/undoc.rst b/Doc/library/undoc.rst index 942a924e5f5..ae8fae745e9 100644 --- a/Doc/library/undoc.rst +++ b/Doc/library/undoc.rst @@ -169,3 +169,27 @@ must be enabled by uncommenting the appropriate lines in :file:`Modules/Setup` in the build tree and either rebuilding Python if the modules are statically linked, or building and installing the shared object if using dynamically-loaded extensions. + +.. (lib-old is empty as of Python 2.5) + + Those which are written in Python will be installed into the directory + \file{lib-old/} installed as part of the standard library. To use + these, the directory must be added to \code{sys.path}, possibly using + \envvar{PYTHONPATH}. + +:mod:`timing` + --- Measure time intervals to high resolution (use :func:`time.clock` instead). + + +SGI-specific Extension modules +============================== + +The following are SGI specific, and may be out of touch with the current version +of reality. + +:mod:`cl` + --- Interface to the SGI compression library. + +:mod:`sv` + --- Interface to the "simple video" board on SGI Indigo (obsolete hardware). + diff --git a/Doc/library/wave.rst b/Doc/library/wave.rst index d03f0918263..b931fed4026 100644 --- a/Doc/library/wave.rst +++ b/Doc/library/wave.rst @@ -1,13 +1,10 @@ -.. % Documentations stolen and LaTeX'ed from comments in file. - - :mod:`wave` --- Read and write WAV files ======================================== .. module:: wave :synopsis: Provide an interface to the WAV sound format. .. sectionauthor:: Moshe Zadka - +.. Documentations stolen from comments in file. The :mod:`wave` module provides a convenient interface to the WAV sound format. It does not support compression/decompression, but it does support mono/stereo. diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst index fdfbae04dfb..195ac95c86a 100644 --- a/Doc/library/weakref.rst +++ b/Doc/library/weakref.rst @@ -13,8 +13,8 @@ The :mod:`weakref` module allows the Python programmer to create :dfn:`weak references` to objects. -.. % When making changes to the examples in this file, be sure to update -.. % Lib/test/test_weakref.py::libreftest too! +.. When making changes to the examples in this file, be sure to update + Lib/test/test_weakref.py::libreftest too! In the following, the term :dfn:`referent` means the object which is referred to by a weak reference. @@ -306,7 +306,7 @@ objects that it has seen before. The IDs of the objects can then be used in other data structures without forcing the objects to remain alive, but the objects can still be retrieved by ID if they do. -.. % Example contributed by Tim Peters. +.. Example contributed by Tim Peters. :: diff --git a/Doc/library/wsgiref.rst b/Doc/library/wsgiref.rst index 0118032c9bc..e43d850bc06 100644 --- a/Doc/library/wsgiref.rst +++ b/Doc/library/wsgiref.rst @@ -27,7 +27,7 @@ to the WSGI specification (:pep:`333`). See http://www.wsgi.org for more information about WSGI, and links to tutorials and other resources. -.. % XXX If you're just trying to write a web application... +.. XXX If you're just trying to write a web application... :mod:`wsgiref.util` -- WSGI environment utilities diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index 1af07b3a377..84a95f1c787 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -201,11 +201,11 @@ rules apply: * Operations are used as methods. Since the DOM uses only :keyword:`in` parameters, the arguments are passed in normal order (from left to right). - There are no optional arguments. :keyword:`void` operations return ``None``. + There are no optional arguments. ``void`` operations return ``None``. * IDL attributes map to instance attributes. For compatibility with the OMG IDL language mapping for Python, an attribute ``foo`` can also be accessed through - accessor methods :meth:`_get_foo` and :meth:`_set_foo`. :keyword:`readonly` + accessor methods :meth:`_get_foo` and :meth:`_set_foo`. ``readonly`` attributes must not be changed; this is not enforced at runtime. * The types ``short int``, ``unsigned int``, ``unsigned long long``, and @@ -216,7 +216,7 @@ rules apply: Values of type ``DOMString`` may also be ``None`` where allowed to have the IDL ``null`` value by the DOM specification from the W3C. -* :keyword:`const` declarations map to variables in their respective scope (e.g. +* ``const`` declarations map to variables in their respective scope (e.g. ``xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE``); they must not be changed. * ``DOMException`` is currently not supported in :mod:`xml.dom.minidom`. diff --git a/Doc/library/xml.dom.rst b/Doc/library/xml.dom.rst index d75db2cdca0..76edd436465 100644 --- a/Doc/library/xml.dom.rst +++ b/Doc/library/xml.dom.rst @@ -38,13 +38,13 @@ DOM Level 2 recommendation. package `_. Refer to the documentation bundled with that package for information on the current state of DOM Level 3 support. -.. % What if your needs are somewhere between SAX and the DOM? Perhaps -.. % you cannot afford to load the entire tree in memory but you find the -.. % SAX model somewhat cumbersome and low-level. There is also a module -.. % called xml.dom.pulldom that allows you to build trees of only the -.. % parts of a document that you need structured access to. It also has -.. % features that allow you to find your way around the DOM. -.. % See http://www.prescod.net/python/pulldom +.. What if your needs are somewhere between SAX and the DOM? Perhaps + you cannot afford to load the entire tree in memory but you find the + SAX model somewhat cumbersome and low-level. There is also a module + called xml.dom.pulldom that allows you to build trees of only the + parts of a document that you need structured access to. It also has + features that allow you to find your way around the DOM. + See http://www.prescod.net/python/pulldom DOM applications typically start by parsing some XML into a DOM. How this is accomplished is not covered at all by DOM Level 1, and Level 2 provides only @@ -148,7 +148,7 @@ provided as part of this module does provide the constants used for the within the class rather than at the module level to conform with the DOM specifications. -.. % Should the Node documentation go here? +.. Should the Node documentation go here? .. _dom-objects: @@ -893,7 +893,7 @@ attribute. This is raised if data is specified for a node which does not support data. - .. % XXX a better explanation is needed! + .. XXX a better explanation is needed! .. exception:: NoModificationAllowedErr @@ -906,7 +906,7 @@ attribute. Raised when an invalid or illegal string is specified. - .. % XXX how is this different from InvalidCharacterErr ??? + .. XXX how is this different from InvalidCharacterErr? .. exception:: WrongDocumentErr @@ -988,8 +988,8 @@ Additionally, the :class:`DOMString` defined in the recommendation is mapped to a Python string or Unicode string. Applications should be able to handle Unicode whenever a string is returned from the DOM. -The IDL :keyword:`null` value is mapped to ``None``, which may be accepted or -provided by the implementation whenever :keyword:`null` is allowed by the API. +The IDL ``null`` value is mapped to ``None``, which may be accepted or +provided by the implementation whenever ``null`` is allowed by the API. .. _dom-accessor-methods: @@ -998,7 +998,7 @@ Accessor Methods ^^^^^^^^^^^^^^^^ The mapping from OMG IDL to Python defines accessor functions for IDL -:keyword:`attribute` declarations in much the way the Java mapping does. +``attribute`` declarations in much the way the Java mapping does. Mapping the IDL declarations :: readonly attribute string someValue; @@ -1017,13 +1017,13 @@ likely to work, and wrapper objects may be needed on the client if the DOM objects are accessed via CORBA. While this does require some additional consideration for CORBA DOM clients, the implementers with experience using DOM over CORBA from Python do not consider this a problem. Attributes that are -declared :keyword:`readonly` may not restrict write access in all DOM +declared ``readonly`` may not restrict write access in all DOM implementations. In the Python DOM API, accessor functions are not required. If provided, they should take the form defined by the Python IDL mapping, but these methods are considered unnecessary since the attributes are accessible directly from Python. -"Set" accessors should never be provided for :keyword:`readonly` attributes. +"Set" accessors should never be provided for ``readonly`` attributes. The IDL definitions do not fully embody the requirements of the W3C DOM API, such as the notion of certain objects, such as the return value of diff --git a/Doc/library/xml.etree.rst b/Doc/library/xml.etree.rst index 9d395591fe8..a9447654172 100644 --- a/Doc/library/xml.etree.rst +++ b/Doc/library/xml.etree.rst @@ -12,7 +12,7 @@ common components from the ElementTree API library. In the current release, this package contains the :mod:`ElementTree`, :mod:`ElementPath`, and :mod:`ElementInclude` modules from the full ElementTree distribution. -.. % XXX To be continued! +.. XXX To be continued! .. seealso:: diff --git a/Doc/library/xml.sax.handler.rst b/Doc/library/xml.sax.handler.rst index 3ef3c83c6f1..c31efd820e7 100644 --- a/Doc/library/xml.sax.handler.rst +++ b/Doc/library/xml.sax.handler.rst @@ -205,7 +205,7 @@ events in the input document: information to the application to expand prefixes in those contexts itself, if necessary. - .. % XXX This is not really the default, is it? MvL + .. XXX This is not really the default, is it? MvL Note that :meth:`startPrefixMapping` and :meth:`endPrefixMapping` events are not guaranteed to be properly nested relative to each-other: all diff --git a/Doc/library/xml.sax.reader.rst b/Doc/library/xml.sax.reader.rst index bb802ee2047..5994371b966 100644 --- a/Doc/library/xml.sax.reader.rst +++ b/Doc/library/xml.sax.reader.rst @@ -348,8 +348,8 @@ are also provided: Return the value of attribute *name*. -.. % getValueByQName, getNameByQName, getQNameByName, getQNames available -.. % here already, but documented only for derived class. +.. getValueByQName, getNameByQName, getQNameByName, getQNames available +.. here already, but documented only for derived class. .. _attributes-ns-objects: diff --git a/Doc/library/xmlrpclib.rst b/Doc/library/xmlrpclib.rst index bde0688a0a2..176c9290ac6 100644 --- a/Doc/library/xmlrpclib.rst +++ b/Doc/library/xmlrpclib.rst @@ -1,4 +1,3 @@ - :mod:`xmlrpclib` --- XML-RPC client access ========================================== @@ -8,8 +7,8 @@ .. sectionauthor:: Eric S. Raymond -.. % Not everything is documented yet. It might be good to describe -.. % Marshaller, Unmarshaller, getparser, dumps, loads, and Transport. +.. XXX Not everything is documented yet. It might be good to describe + Marshaller, Unmarshaller, getparser, dumps, loads, and Transport. XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote @@ -529,11 +528,9 @@ Example of Client Usage print("ERROR", v) To access an XML-RPC server through a proxy, you need to define a custom -transport. The following example, written by NoboNobo, shows how: +transport. The following example shows how: -.. % fill in original author's name if we ever learn it - -.. % Example taken from http://lowlife.jp/nobonobo/wiki/xmlrpcwithproxy.html +.. Example taken from http://lowlife.jp/nobonobo/wiki/xmlrpcwithproxy.html :: diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 6c946f8f7a9..75154402368 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -7,9 +7,6 @@ .. moduleauthor:: James C. Ahlstrom .. sectionauthor:: James C. Ahlstrom - -.. % LaTeX markup by Fred L. Drake, Jr. - The ZIP file format is a common archive and compression standard. This module provides tools to create, read, write, append, and list a ZIP file. Any advanced use of this module will require an understanding of the format, as diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst index 449394cc387..dda0b9c30c3 100644 --- a/Doc/library/zlib.rst +++ b/Doc/library/zlib.rst @@ -74,8 +74,6 @@ The available exception and functions in this module are: the algorithm is designed for use as a checksum algorithm, it is not suitable for use as a general hash algorithm. - .. % - .. function:: decompress(string[, wbits[, bufsize]]) diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 432f3c8bad9..927930a27e5 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -72,6 +72,8 @@ on a separate line for clarity. .. _if: +.. _elif: +.. _else: The :keyword:`if` statement =========================== @@ -200,6 +202,8 @@ returns the list ``[0, 1, 2]``. .. _try: +.. _except: +.. _finally: The :keyword:`try` statement ============================ @@ -326,6 +330,7 @@ may be found in section :ref:`raise`. .. _with: +.. _as: The :keyword:`with` statement ============================= @@ -382,6 +387,7 @@ The execution of the :keyword:`with` statement proceeds as follows: .. _function: +.. _def: Function definitions ==================== diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index 49bc8b62349..0ec255fb626 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -202,8 +202,6 @@ Numbers operation except left shift, if it yields a result in the plain integer domain without causing overflow, will yield the same result when using mixed operands. - .. % Integers - Floating point numbers .. index:: object: floating point @@ -229,8 +227,6 @@ Numbers The real and imaginary parts of a complex number ``z`` can be retrieved through the read-only attributes ``z.real`` and ``z.imag``. - .. % Numbers - Sequences .. index:: builtin: len @@ -302,8 +298,6 @@ Sequences parentheses must be usable for grouping of expressions). An empty tuple can be formed by an empty pair of parentheses. - .. % Immutable sequences - Mutable sequences .. index:: object: mutable sequence @@ -341,10 +335,6 @@ Sequences The extension module :mod:`array` provides an additional example of a mutable sequence type. - .. % Mutable sequences - - .. % Sequences - Set types .. index:: builtin: len @@ -379,8 +369,6 @@ Set types :term:`hashable`, it can be used again as an element of another set, or as a dictionary key. - .. % Set types - Mappings .. index:: builtin: len @@ -418,8 +406,6 @@ Mappings The extension modules :mod:`dbm`, :mod:`gdbm`, and :mod:`bsddb` provide additional examples of mapping types. - .. % Mapping types - Callable types .. index:: object: callable @@ -652,8 +638,6 @@ Modules object used to initialize the module (since it isn't needed once the initialization is done). - .. % - Attribute assignment updates the module's namespace dictionary, e.g., ``m.x = 1`` is equivalent to ``m.__dict__["x"] = 1``. @@ -992,12 +976,53 @@ Internal types described above, under "User-defined methods". Class method objects are created by the built-in :func:`classmethod` constructor. - .. % Internal types - -.. % ========================================================================= .. _newstyle: +New-style and classic classes +============================= + +Classes and instances come in two flavors: old-style or classic, and new-style. + +Up to Python 2.1, old-style classes were the only flavour available to the user. +The concept of (old-style) class is unrelated to the concept of type: if *x* is +an instance of an old-style class, then ``x.__class__`` designates the class of +*x*, but ``type(x)`` is always ````. This reflects the fact +that all old-style instances, independently of their class, are implemented with +a single built-in type, called ``instance``. + +New-style classes were introduced in Python 2.2 to unify classes and types. A +new-style class neither more nor less than a user-defined type. If *x* is an +instance of a new-style class, then ``type(x)`` is the same as ``x.__class__``. + +The major motivation for introducing new-style classes is to provide a unified +object model with a full meta-model. It also has a number of immediate +benefits, like the ability to subclass most built-in types, or the introduction +of "descriptors", which enable computed properties. + +For compatibility reasons, classes are still old-style by default. New-style +classes are created by specifying another new-style class (i.e. a type) as a +parent class, or the "top-level type" :class:`object` if no other parent is +needed. The behaviour of new-style classes differs from that of old-style +classes in a number of important details in addition to what :func:`type` +returns. Some of these changes are fundamental to the new object model, like +the way special methods are invoked. Others are "fixes" that could not be +implemented before for compatibility concerns, like the method resolution order +in case of multiple inheritance. + +This manual is not up-to-date with respect to new-style classes. For now, +please see http://www.python.org/doc/newstyle.html for more information. + +.. index:: + single: class + single: class + single: class + +The plan is to eventually drop old-style classes, leaving only the semantics of +new-style classes. This change will probably only be feasible in Python 3.0. +new-style classic old-style + + .. _specialnames: Special method names diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 4bb0074df19..6e160ee558f 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -937,6 +937,10 @@ must be integers. .. _comparisons: +.. _is: +.. _isnot: +.. _in: +.. _notin: Comparisons =========== @@ -1058,6 +1062,9 @@ yields the inverse truth value. .. _booleans: +.. _and: +.. _or: +.. _not: Boolean operations ================== diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst index 741f8ecdc84..ae71ec74984 100644 --- a/Doc/reference/lexical_analysis.rst +++ b/Doc/reference/lexical_analysis.rst @@ -100,8 +100,7 @@ If an encoding is declared, the encoding name must be recognized by Python. The encoding is used for all lexical analysis, including string literals, comments and identifiers. The encoding declaration must appear on a line of its own. -A list of standard encodings can be found in the section -:ref:`standard-encodings`. +.. XXX there should be a list of supported encodings. .. _explicit-joining: diff --git a/Doc/reference/simple_stmts.rst b/Doc/reference/simple_stmts.rst index e9be1fddd46..a8220069834 100644 --- a/Doc/reference/simple_stmts.rst +++ b/Doc/reference/simple_stmts.rst @@ -143,6 +143,19 @@ Assignment of an object to a single target is recursively defined as follows. count for the object previously bound to the name to reach zero, causing the object to be deallocated and its destructor (if it has one) to be called. + .. index:: single: destructor + + The name is rebound if it was already bound. This may cause the reference count + for the object previously bound to the name to reach zero, causing the object to + be deallocated and its destructor (if it has one) to be called. + +* If the target is a target list enclosed in parentheses or in square brackets: + The object must be a sequence with the same number of items as there are targets + in the target list, and its items are assigned, from left to right, to the + corresponding targets. + + .. index:: pair: attribute; assignment + * If the target is an attribute reference: The primary expression in the reference is evaluated. It should yield an object with assignable attributes; if this is not the case, :exc:`TypeError` is raised. That object is then @@ -296,16 +309,16 @@ The extended form, ``assert expression1, expression2``, is equivalent to :: single: __debug__ exception: AssertionError -These equivalences assume that ``__debug__`` and :exc:`AssertionError` refer to +These equivalences assume that :const:`__debug__` and :exc:`AssertionError` refer to the built-in variables with those names. In the current implementation, the -built-in variable ``__debug__`` is ``True`` under normal circumstances, +built-in variable :const:`__debug__` is ``True`` under normal circumstances, ``False`` when optimization is requested (command line option -O). The current code generator emits no code for an assert statement when optimization is requested at compile time. Note that it is unnecessary to include the source code for the expression that failed in the error message; it will be displayed as part of the stack trace. -Assignments to ``__debug__`` are illegal. The value for the built-in variable +Assignments to :const:`__debug__` are illegal. The value for the built-in variable is determined when the interpreter starts. @@ -512,6 +525,7 @@ cycle of the nearest enclosing loop. .. _import: +.. _from: The :keyword:`import` statement =============================== diff --git a/Doc/tutorial/appetite.rst b/Doc/tutorial/appetite.rst index f1c80e95986..120955e0d10 100644 --- a/Doc/tutorial/appetite.rst +++ b/Doc/tutorial/appetite.rst @@ -75,8 +75,6 @@ Now that you are all excited about Python, you'll want to examine it in some more detail. Since the best way to learn a language is to use it, the tutorial invites you to play with the Python interpreter as you read. -.. % \section{Where From Here \label{where}} - In the next chapter, the mechanics of using the interpreter are explained. This is rather mundane information, but essential for trying out the examples shown later. diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst index eb1b60993a6..0940a75d87f 100644 --- a/Doc/tutorial/classes.rst +++ b/Doc/tutorial/classes.rst @@ -390,7 +390,7 @@ is called with this new argument list. Random Remarks ============== -.. % [These should perhaps be placed more carefully...] +.. These should perhaps be placed more carefully... Data attributes override method attributes with the same name; to avoid accidental name conflicts, which may cause hard-to-find bugs in large programs, @@ -506,7 +506,7 @@ Derived classes may override methods of their base classes. Because methods have no special privileges when calling other methods of the same object, a method of a base class that calls another method defined in the same base class may end up calling a method of a derived class that overrides it. (For C++ -programmers: all methods in Python are effectively :keyword:`virtual`.) +programmers: all methods in Python are effectively ``virtual``.) An overriding method in a derived class may in fact want to extend rather than simply replace the base class method of the same name. There is a simple way to @@ -617,12 +617,10 @@ instance, if you have a function that formats some data from a file object, you can define a class with methods :meth:`read` and :meth:`readline` that get the data from a string buffer instead, and pass it as an argument. -.. % (Unfortunately, this -.. % technique has its limitations: a class can't define operations that -.. % are accessed by special syntax such as sequence subscripting or -.. % arithmetic operators, and assigning such a ``pseudo-file'' to -.. % \code{sys.stdin} will not cause the interpreter to read further input -.. % from it.) +.. (Unfortunately, this technique has its limitations: a class can't define + operations that are accessed by special syntax such as sequence subscripting + or arithmetic operators, and assigning such a "pseudo-file" to sys.stdin will + not cause the interpreter to read further input from it.) Instance method objects have attributes, too: ``m.__self__`` is the instance object with the method :meth:`m`, and ``m.__func__`` is the function object diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst index 5d815d6004b..f51b66ca076 100644 --- a/Doc/tutorial/controlflow.rst +++ b/Doc/tutorial/controlflow.rst @@ -31,11 +31,8 @@ example:: There can be zero or more :keyword:`elif` parts, and the :keyword:`else` part is optional. The keyword ':keyword:`elif`' is short for 'else if', and is useful to avoid excessive indentation. An :keyword:`if` ... :keyword:`elif` ... -:keyword:`elif` ... sequence is a substitute for the :keyword:`switch` or -:keyword:`case` statements found in other languages. - -.. % Weird spacings happen here if the wrapping of the source text -.. % gets changed in the wrong way. +:keyword:`elif` ... sequence is a substitute for the ``switch`` or +``case`` statements found in other languages. .. _tut-for: @@ -53,8 +50,8 @@ iteration step and halting condition (as C), Python's :keyword:`for` statement iterates over the items of any sequence (a list or a string), in the order that they appear in the sequence. For example (no pun intended): -.. % One suggestion was to give a real C example here, but that may only -.. % serve to confuse non-C programmers. +.. One suggestion was to give a real C example here, but that may only serve to + confuse non-C programmers. :: diff --git a/Doc/tutorial/datastructures.rst b/Doc/tutorial/datastructures.rst index cf9fea3bd5c..206f056724d 100644 --- a/Doc/tutorial/datastructures.rst +++ b/Doc/tutorial/datastructures.rst @@ -350,6 +350,70 @@ is assigned to it). We'll find other uses for :keyword:`del` later. +Tuples and Sequences +==================== + +We saw that lists and strings have many common properties, such as indexing and +slicing operations. They are two examples of *sequence* data types (see +:ref:`typesseq`). Since Python is an evolving language, other sequence data +types may be added. There is also another standard sequence data type: the +*tuple*. + +A tuple consists of a number of values separated by commas, for instance:: + + >>> t = 12345, 54321, 'hello!' + >>> t[0] + 12345 + >>> t + (12345, 54321, 'hello!') + >>> # Tuples may be nested: + ... u = t, (1, 2, 3, 4, 5) + >>> u + ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5)) + +As you see, on output tuples are always enclosed in parentheses, so that nested +tuples are interpreted correctly; they may be input with or without surrounding +parentheses, although often parentheses are necessary anyway (if the tuple is +part of a larger expression). + +Tuples have many uses. For example: (x, y) coordinate pairs, employee records +from a database, etc. Tuples, like strings, are immutable: it is not possible +to assign to the individual items of a tuple (you can simulate much of the same +effect with slicing and concatenation, though). It is also possible to create +tuples which contain mutable objects, such as lists. + +A special problem is the construction of tuples containing 0 or 1 items: the +syntax has some extra quirks to accommodate these. Empty tuples are constructed +by an empty pair of parentheses; a tuple with one item is constructed by +following a value with a comma (it is not sufficient to enclose a single value +in parentheses). Ugly, but effective. For example:: + + >>> empty = () + >>> singleton = 'hello', # <-- note trailing comma + >>> len(empty) + 0 + >>> len(singleton) + 1 + >>> singleton + ('hello',) + +The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple packing*: +the values ``12345``, ``54321`` and ``'hello!'`` are packed together in a tuple. +The reverse operation is also possible:: + + >>> x, y, z = t + +This is called, appropriately enough, *sequence unpacking*. Sequence unpacking +requires the list of variables on the left to have the same number of elements +as the length of the sequence. Note that multiple assignment is really just a +combination of tuple packing and sequence unpacking! + +There is a small bit of asymmetry here: packing multiple values always creates +a tuple, and unpacking works for any sequence. + +.. XXX Add a bit on the difference between tuples and lists. + + .. _tut-sets: Sets diff --git a/Doc/tutorial/inputoutput.rst b/Doc/tutorial/inputoutput.rst index cfea7bbd57f..d4cad879f1c 100644 --- a/Doc/tutorial/inputoutput.rst +++ b/Doc/tutorial/inputoutput.rst @@ -180,11 +180,9 @@ Reading and Writing Files :func:`open` returns a file object, and is most commonly used with two arguments: ``open(filename, mode)``. -.. % Opening files - :: - >>> f=open('/tmp/workfile', 'w') + >>> f = open('/tmp/workfile', 'w') >>> print(f) diff --git a/Doc/tutorial/interpreter.rst b/Doc/tutorial/interpreter.rst index 5c67ba9e628..7b1730e1c50 100644 --- a/Doc/tutorial/interpreter.rst +++ b/Doc/tutorial/interpreter.rst @@ -212,8 +212,8 @@ setting an environment variable named :envvar:`PYTHONSTARTUP` to the name of a file containing your start-up commands. This is similar to the :file:`.profile` feature of the Unix shells. -.. % XXX This should probably be dumped in an appendix, since most people -.. % don't use Python interactively in non-trivial ways. +.. XXX This should probably be dumped in an appendix, since most people + don't use Python interactively in non-trivial ways. This file is only read in interactive sessions, not when Python reads commands from a script, and not when :file:`/dev/tty` is given as the explicit source of diff --git a/Doc/tutorial/introduction.rst b/Doc/tutorial/introduction.rst index 4226ffdde81..a99e7d22117 100644 --- a/Doc/tutorial/introduction.rst +++ b/Doc/tutorial/introduction.rst @@ -13,9 +13,9 @@ end a multi-line command. Many of the examples in this manual, even those entered at the interactive prompt, include comments. Comments in Python start with the hash character, -``'#'``, and extend to the end of the physical line. A comment may appear at +``#``, and extend to the end of the physical line. A comment may appear at the start of a line or following whitespace or code, but not within a string -literal. A hash character within a string literal is just a hash character. +literal. A hash character within a string literal is just a hash character. Some examples:: @@ -608,5 +608,3 @@ This example introduces several new features. Note that nothing appeared after the loop ended, until we printed a newline. - - diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst index 2a14b356152..279afc812bd 100644 --- a/Doc/tutorial/modules.rst +++ b/Doc/tutorial/modules.rst @@ -223,11 +223,6 @@ Some tips for experts: * The module :mod:`compileall` can create :file:`.pyc` files (or :file:`.pyo` files when :option:`-O` is used) for all modules in a directory. -* If using Python in a parallel processing system with a shared file system, - you need to patch Python to disable the creation of the compiled files - because otherwise the multiple Python interpreters will encounter race - conditions in creating them. - .. _tut-standardmodules: @@ -246,11 +241,7 @@ depends on the underlying platform For example, the :mod:`winreg` module is only provided on Windows systems. One particular module deserves some attention: :mod:`sys`, which is built into every Python interpreter. The variables ``sys.ps1`` and ``sys.ps2`` define the strings used as primary and secondary -prompts: - -.. % - -:: +prompts:: >>> import sys >>> sys.ps1 @@ -455,8 +446,6 @@ filename! On these platforms, there is no guaranteed way to know whether a file file names with a capitalized first letter.) The DOS 8+3 filename restriction adds another interesting problem for long module names. -.. % The \code{__all__} Attribute - The only solution is for the package author to provide an explicit index of the package. The import statement uses the following convention: if a package's :file:`__init__.py` code defines a list named ``__all__``, it is taken to be the diff --git a/Doc/tutorial/whatnow.rst b/Doc/tutorial/whatnow.rst index 69fa9c3bbf2..25d42a8604c 100644 --- a/Doc/tutorial/whatnow.rst +++ b/Doc/tutorial/whatnow.rst @@ -66,8 +66,8 @@ archives are available at http://mail.python.org/pipermail/. The FAQ answers many of the questions that come up again and again, and may already contain the solution for your problem. -.. % Postings figure based on average of last six months activity as -.. % reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182 -.. % days = 116.9 msgs / day and steadily increasing. +.. Postings figure based on average of last six months activity as + reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182 + days = 116.9 msgs / day and steadily increasing. (XXX up to date figures?) diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index 035f405f7a3..2b52544e045 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -158,8 +158,7 @@ installation directory. So, if you had installed Python to :file:`C:\\Python\\Lib\\` and third-party modules should be stored in :file:`C:\\Python\\Lib\\site-packages\\`. -.. % `` this fixes syntax highlighting errors in some editors - due to the \\ hackery +.. `` this fixes syntax highlighting errors in some editors due to the \\ hackery You can add folders to your search path to make Python's import mechanism search in these directories as well. Use :envvar:`PYTHONPATH`, as described in @@ -167,7 +166,7 @@ in these directories as well. Use :envvar:`PYTHONPATH`, as described in separated by semicolons, though, to distinguish them from drive identifiers (:file:`C:\\` etc.). -.. % `` +.. `` Modifying the module search path can also be done through the Windows registry: Edit diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst index 302986c1638..9ea5dc1d75f 100644 --- a/Doc/whatsnew/2.0.rst +++ b/Doc/whatsnew/2.0.rst @@ -6,7 +6,7 @@ .. |release| replace:: 1.02 -.. % $Id: whatsnew20.tex 51211 2006-08-11 14:57:12Z thomas.wouters $ +.. $Id: whatsnew20.tex 50964 2006-07-30 03:03:43Z fred.drake $ Introduction @@ -26,7 +26,7 @@ progress is due to the five developers working for PythonLabs are now getting paid to spend their days fixing bugs, and also due to the improved communication resulting from moving to SourceForge. -.. % ====================================================================== +.. ====================================================================== What About Python 1.6? @@ -50,7 +50,7 @@ you're better off just going straight to 2.0. Most of the really interesting features described in this document are only in 2.0, because a lot of work was done between May and September. -.. % ====================================================================== +.. ====================================================================== New Development Process @@ -134,7 +134,7 @@ http://www.python.org/peps/. As of September 2000, there are 25 PEPS, ranging from PEP 201, "Lockstep Iteration", to PEP 225, "Elementwise/Objectwise Operators". -.. % ====================================================================== +.. ====================================================================== Unicode @@ -255,7 +255,7 @@ interpret all string literals as Unicode string literals. This is intended to be used in testing and future-proofing your Python code, since some future version of Python may drop support for 8-bit strings and provide only Unicode strings. -.. % ====================================================================== +.. ====================================================================== List Comprehensions @@ -342,7 +342,7 @@ for adding them to Python and wrote the initial list comprehension patch, which was then discussed for a seemingly endless time on the python-dev mailing list and kept up-to-date by Skip Montanaro. -.. % ====================================================================== +.. ====================================================================== Augmented Assignment @@ -360,7 +360,7 @@ named :meth:`__iadd__`, :meth:`__isub__`, etc. For example, the following :class:`Number` class stores a number and supports using += to create a new instance with an incremented value. -.. % The empty groups below prevent conversion to guillemets. +.. The empty groups below prevent conversion to guillemets. :: @@ -383,7 +383,7 @@ language, and most C-derived languages, such as :program:`awk`, C++, Java, Perl, and PHP also support them. The augmented assignment patch was implemented by Thomas Wouters. -.. % ====================================================================== +.. ====================================================================== String Methods @@ -426,7 +426,7 @@ and is equivalent to the :func:`string.join` function from the old :mod:`string` module, with the arguments reversed. In other words, ``s.join(seq)`` is equivalent to the old ``string.join(seq, s)``. -.. % ====================================================================== +.. ====================================================================== Garbage Collection of Cycles @@ -488,7 +488,7 @@ the way; the March 2000 archives of the python-dev mailing list contain most of the relevant discussion, especially in the threads titled "Reference cycle collection for Python" and "Finalization again". -.. % ====================================================================== +.. ====================================================================== Other Core Changes @@ -565,8 +565,8 @@ such as ``cmp(a,b)`` would always produce an answer, even if a user-defined :meth:`__cmp__` method encountered an error, since the resulting exception would simply be silently swallowed. -.. % Starting URL: -.. % http://www.python.org/pipermail/python-dev/2000-April/004834.html +.. Starting URL: +.. http://www.python.org/pipermail/python-dev/2000-April/004834.html Work has been done on porting Python to 64-bit Windows on the Itanium processor, mostly by Trent Mick of ActiveState. (Confusingly, ``sys.platform`` is still @@ -641,7 +641,7 @@ recursion depth can be read and modified using :func:`sys.getrecursionlimit` and value for a given platform can be found by running a new script, :file:`Misc/find_recursionlimit.py`. -.. % ====================================================================== +.. ====================================================================== Porting to 2.0 @@ -728,13 +728,13 @@ always be classes. The :mod:`exceptions` module containing the standard exceptions was translated from Python to a built-in C module, written by Barry Warsaw and Fredrik Lundh. -.. % Commented out for now -- I don't think anyone will care. -.. % The pattern and match objects provided by SRE are C types, not Python -.. % class instances as in 1.5. This means you can no longer inherit from -.. % \class{RegexObject} or \class{MatchObject}, but that shouldn't be much -.. % of a problem since no one should have been doing that in the first -.. % place. -.. % ====================================================================== +.. Commented out for now -- I don't think anyone will care. + The pattern and match objects provided by SRE are C types, not Python + class instances as in 1.5. This means you can no longer inherit from + \class{RegexObject} or \class{MatchObject}, but that shouldn't be much + of a problem since no one should have been doing that in the first + place. +.. ====================================================================== Extending/Embedding Changes @@ -805,7 +805,7 @@ string. A wrapper API was added for Unix-style signal handlers. :func:`PyOS_getsig` gets a signal handler and :func:`PyOS_setsig` will set a new handler. -.. % ====================================================================== +.. ====================================================================== Distutils: Making Modules Easy to Install @@ -875,7 +875,7 @@ development. All this is documented in a new manual, *Distributing Python Modules*, that joins the basic set of Python documentation. -.. % ====================================================================== +.. ====================================================================== XML Modules @@ -1024,7 +1024,7 @@ features in PyXML include: * The :mod:`sgmlop` parser accelerator module, written by Fredrik Lundh. -.. % ====================================================================== +.. ====================================================================== Module changes @@ -1069,7 +1069,7 @@ been changed. SRE, a new regular expression engine written by Fredrik Lundh and partially funded by Hewlett Packard, supports matching against both 8-bit strings and Unicode strings. -.. % ====================================================================== +.. ====================================================================== New modules @@ -1145,7 +1145,7 @@ module. import hooks, in comparison to the existing :mod:`ihooks` module. (Implemented by Greg Stein, with much discussion on python-dev along the way.) -.. % ====================================================================== +.. ====================================================================== IDLE Improvements @@ -1179,7 +1179,7 @@ partial list: * Three new keystroke commands: Check module (Alt-F5), Import module (F5) and Run script (Ctrl-F5). -.. % ====================================================================== +.. ====================================================================== Deleted and Deprecated Modules diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst index 2be11baad9f..c3f12802292 100644 --- a/Doc/whatsnew/2.1.rst +++ b/Doc/whatsnew/2.1.rst @@ -6,7 +6,7 @@ .. |release| replace:: 1.01 -.. % $Id: whatsnew21.tex 51211 2006-08-11 14:57:12Z thomas.wouters $ +.. $Id: whatsnew21.tex 50964 2006-07-30 03:03:43Z fred.drake $ Introduction @@ -29,7 +29,7 @@ January, 3 months after the final version of 2.0 was released. The final release of Python 2.1 was made on April 17, 2001. -.. % ====================================================================== +.. ====================================================================== PEP 227: Nested Scopes @@ -123,7 +123,7 @@ all of 2.1's lifetime to fix any breakage resulting from their introduction. :pep:`227` - Statically Nested Scopes Written and implemented by Jeremy Hylton. -.. % ====================================================================== +.. ====================================================================== PEP 236: __future__ Directives @@ -153,7 +153,7 @@ precede any statement that will result in bytecodes being produced. :pep:`236` - Back to the :mod:`__future__` Written by Tim Peters, and primarily implemented by Jeremy Hylton. -.. % ====================================================================== +.. ====================================================================== PEP 207: Rich Comparisons @@ -223,7 +223,7 @@ comparison. I won't cover the C API here, but will refer you to PEP 207, or to Written by Guido van Rossum, heavily based on earlier work by David Ascher, and implemented by Guido van Rossum. -.. % ====================================================================== +.. ====================================================================== PEP 230: Warning Framework @@ -295,7 +295,7 @@ Functions were also added to Python's C API for issuing warnings; refer to PEP :pep:`230` - Warning Framework Written and implemented by Guido van Rossum. -.. % ====================================================================== +.. ====================================================================== PEP 229: New Build System @@ -335,7 +335,7 @@ simpler. :pep:`229` - Using Distutils to Build Python Written and implemented by A.M. Kuchling. -.. % ====================================================================== +.. ====================================================================== PEP 205: Weak References @@ -416,7 +416,7 @@ exists. If the object is deallocated, attempting to use a proxy will cause a :pep:`205` - Weak References Written and implemented by Fred L. Drake, Jr. -.. % ====================================================================== +.. ====================================================================== PEP 232: Function Attributes @@ -454,7 +454,7 @@ that behaves like a mapping. :pep:`232` - Function Attributes Written and implemented by Barry Warsaw. -.. % ====================================================================== +.. ====================================================================== PEP 235: Importing Modules on Case-Insensitive Platforms @@ -472,7 +472,7 @@ is found, so ``import file`` will not import a module named ``FILE.PY``. Case- insensitive matching can be requested by setting the :envvar:`PYTHONCASEOK` environment variable before starting the Python interpreter. -.. % ====================================================================== +.. ====================================================================== PEP 217: Interactive Display Hook @@ -502,7 +502,7 @@ printing function:: :pep:`217` - Display Hook for Interactive Use Written and implemented by Moshe Zadka. -.. % ====================================================================== +.. ====================================================================== PEP 208: New Coercion Model @@ -534,7 +534,7 @@ object's numeric methods). Marc-André Lemburg. Read this to understand the fine points of how numeric operations will now be processed at the C level. -.. % ====================================================================== +.. ====================================================================== PEP 241: Metadata in Python Packages @@ -574,7 +574,7 @@ available from the Distutils SIG at http://www.python.org/sigs/distutils-sig/. Written by Sean Reifschneider, this draft PEP describes a proposed mechanism for uploading Python packages to a central server. -.. % ====================================================================== +.. ====================================================================== New and Improved Modules @@ -677,7 +677,7 @@ New and Improved Modules implementation. Use it for debugging, and resist the temptation to put it into production code. -.. % ====================================================================== +.. ====================================================================== Other Changes and Fixes @@ -782,7 +782,7 @@ And there's the usual list of minor bugfixes, minor memory leaks, docstring edits, and other tweaks, too lengthy to be worth itemizing; see the CVS logs for the full details if you want them. -.. % ====================================================================== +.. ====================================================================== Acknowledgements diff --git a/Doc/whatsnew/2.2.rst b/Doc/whatsnew/2.2.rst index 6a7e0e8b078..4cf1438c81a 100644 --- a/Doc/whatsnew/2.2.rst +++ b/Doc/whatsnew/2.2.rst @@ -6,7 +6,7 @@ .. |release| replace:: 1.02 -.. % $Id: whatsnew22.tex 37315 2004-09-10 19:33:00Z akuchling $ +.. $Id: whatsnew22.tex 37315 2004-09-10 19:33:00Z akuchling $ Introduction @@ -36,7 +36,7 @@ to the PEP for a particular new feature. "What's So Special About Python 2.2?" is also about the new 2.2 features, and was written by Cameron Laird and Kathryn Soraiz. -.. % ====================================================================== +.. ====================================================================== PEPs 252 and 253: Type and Class Changes @@ -414,7 +414,7 @@ for the type handling is in :file:`Objects/typeobject.c`, but you should only resort to it after all other avenues have been exhausted, including posting a question to python-list or python-dev. -.. % ====================================================================== +.. ====================================================================== PEP 234: Iterators @@ -535,7 +535,7 @@ requires a :meth:`next` method. Written by Ka-Ping Yee and GvR; implemented by the Python Labs crew, mostly by GvR and Tim Peters. -.. % ====================================================================== +.. ====================================================================== PEP 255: Simple Generators @@ -662,7 +662,7 @@ a data structure. Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implemented mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python Labs crew. -.. % ====================================================================== +.. ====================================================================== PEP 237: Unifying Long Integers and Integers @@ -702,7 +702,7 @@ rarely needed. Written by Moshe Zadka and Guido van Rossum. Implemented mostly by Guido van Rossum. -.. % ====================================================================== +.. ====================================================================== PEP 238: Changing the Division Operator @@ -770,7 +770,7 @@ Here are the changes 2.2 introduces: :pep:`238` - Changing the Division Operator Written by Moshe Zadka and Guido van Rossum. Implemented by Guido van Rossum.. -.. % ====================================================================== +.. ====================================================================== Unicode Changes @@ -832,7 +832,7 @@ implemented by Fredrik Lundh and Martin von Löwis. :pep:`261` - Support for 'wide' Unicode characters Written by Paul Prescod. -.. % ====================================================================== +.. ====================================================================== PEP 227: Nested Scopes @@ -927,7 +927,7 @@ anyway). :pep:`227` - Statically Nested Scopes Written and implemented by Jeremy Hylton. -.. % ====================================================================== +.. ====================================================================== New and Improved Modules @@ -1042,7 +1042,7 @@ New and Improved Modules scheduling an activity to happen at some future time. (Contributed by Itamar Shtull-Trauring.) -.. % ====================================================================== +.. ====================================================================== Interpreter Changes and Fixes @@ -1122,7 +1122,7 @@ code, none of the changes described here will affect you very much. takes 2 parameters instead of 3. The third argument was never used, and can simply be discarded when porting code from earlier versions to Python 2.2. -.. % ====================================================================== +.. ====================================================================== Other Changes and Fixes @@ -1155,23 +1155,23 @@ Some of the more notable changes are: left commented out in :file:`setup.py`. People who want to experiment with these modules can uncomment them manually. - .. % Jack's original comments: - .. % The main change is the possibility to build Python as a - .. % framework. This installs a self-contained Python installation plus the - .. % OSX framework "glue" into /Library/Frameworks/Python.framework (or - .. % another location of choice). For now there is little immedeate added - .. % benefit to this (actually, there is the disadvantage that you have to - .. % change your PATH to be able to find Python), but it is the basis for - .. % creating a fullblown Python application, porting the MacPython IDE, - .. % possibly using Python as a standard OSA scripting language and much - .. % more. You enable this with "configure --enable-framework". - .. % The other change is that most MacPython toolbox modules, which - .. % interface to all the MacOS APIs such as windowing, quicktime, - .. % scripting, etc. have been ported. Again, most of these are not of - .. % immedeate use, as they need a full application to be really useful, so - .. % they have been commented out in setup.py. People wanting to experiment - .. % can uncomment them. Gestalt and Internet Config modules are enabled by - .. % default. + .. Jack's original comments: + The main change is the possibility to build Python as a + framework. This installs a self-contained Python installation plus the + OSX framework "glue" into /Library/Frameworks/Python.framework (or + another location of choice). For now there is little immedeate added + benefit to this (actually, there is the disadvantage that you have to + change your PATH to be able to find Python), but it is the basis for + creating a fullblown Python application, porting the MacPython IDE, + possibly using Python as a standard OSA scripting language and much + more. You enable this with "configure --enable-framework". + The other change is that most MacPython toolbox modules, which + interface to all the MacOS APIs such as windowing, quicktime, + scripting, etc. have been ported. Again, most of these are not of + immedeate use, as they need a full application to be really useful, so + they have been commented out in setup.py. People wanting to experiment + can uncomment them. Gestalt and Internet Config modules are enabled by + default. * Keyword arguments passed to builtin functions that don't take them now cause a :exc:`TypeError` exception to be raised, with the message "*function* takes no @@ -1253,7 +1253,7 @@ Some of the more notable changes are: unpredictably depending on the platform. A call such as ``pow(2.0, 8.0, 7.0)`` will now raise a :exc:`TypeError` exception. -.. % ====================================================================== +.. ====================================================================== Acknowledgements diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst index 7dd49306bb6..f5c53c04a6a 100644 --- a/Doc/whatsnew/2.3.rst +++ b/Doc/whatsnew/2.3.rst @@ -6,7 +6,7 @@ .. |release| replace:: 1.01 -.. % $Id: whatsnew23.tex 55005 2007-04-27 19:54:29Z guido.van.rossum $ +.. $Id: whatsnew23.tex 54631 2007-03-31 11:58:36Z georg.brandl $ This article explains the new features in Python 2.3. Python 2.3 was released on July 29, 2003. @@ -34,7 +34,7 @@ Reference and the Python Reference Manual. If you want to understand the complete implementation and design rationale, refer to the PEP for a particular new feature. -.. % ====================================================================== +.. ====================================================================== PEP 218: A Standard Set Datatype @@ -117,7 +117,7 @@ whether one set is a subset or superset of another:: PEP written by Greg V. Wilson. Implemented by Greg V. Wilson, Alex Martelli, and GvR. -.. % ====================================================================== +.. ====================================================================== .. _section-generators: @@ -248,7 +248,7 @@ a data structure. Written by Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implemented mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python Labs crew. -.. % ====================================================================== +.. ====================================================================== .. _section-encodings: @@ -282,7 +282,7 @@ use characters outside of the usual alphanumerics. Written by Marc-André Lemburg and Martin von Löwis; implemented by Suzuki Hisao and Martin von Löwis. -.. % ====================================================================== +.. ====================================================================== PEP 273: Importing Modules from ZIP Archives @@ -329,7 +329,7 @@ import from the :file:`lib/` subdirectory within the archive. Just van Rossum that uses the import hooks described in :pep:`302`. See section :ref:`section-pep302` for a description of the new import hooks. -.. % ====================================================================== +.. ====================================================================== PEP 277: Unicode file name support for Windows NT @@ -363,7 +363,7 @@ Under MacOS, :func:`os.listdir` may now return Unicode filenames. Written by Neil Hodgson; implemented by Neil Hodgson, Martin von Löwis, and Mark Hammond. -.. % ====================================================================== +.. ====================================================================== PEP 278: Universal Newline Support @@ -398,7 +398,7 @@ This feature can be disabled when compiling Python by specifying the :pep:`278` - Universal Newline Support Written and implemented by Jack Jansen. -.. % ====================================================================== +.. ====================================================================== .. _section-enumerate: @@ -430,7 +430,7 @@ This can be rewritten using :func:`enumerate` as:: :pep:`279` - The enumerate() built-in function Written and implemented by Raymond D. Hettinger. -.. % ====================================================================== +.. ====================================================================== PEP 282: The logging Package @@ -536,7 +536,7 @@ documentation for all of the details. Reading :pep:`282` will also be helpful. :pep:`282` - A Logging System Written by Vinay Sajip and Trent Mick; implemented by Vinay Sajip. -.. % ====================================================================== +.. ====================================================================== .. _section-bool: @@ -608,7 +608,7 @@ instead of ``'1'`` and ``'0'``. :pep:`285` - Adding a bool type Written and implemented by GvR. -.. % ====================================================================== +.. ====================================================================== PEP 293: Codec Error Handling Callbacks @@ -640,7 +640,7 @@ characters and "xmlcharrefreplace" emits XML character references. :pep:`293` - Codec Error Handling Callbacks Written and implemented by Walter Dörwald. -.. % ====================================================================== +.. ====================================================================== .. _section-pep301: @@ -689,7 +689,7 @@ register --list-classifiers``. :pep:`301` - Package Index and Metadata for Distutils Written and implemented by Richard Jones. -.. % ====================================================================== +.. ====================================================================== .. _section-pep302: @@ -755,7 +755,7 @@ Pseudo-code for Python's new import logic, therefore, looks something like this :pep:`302` - New Import Hooks Written by Just van Rossum and Paul Moore. Implemented by Just van Rossum. -.. % ====================================================================== +.. ====================================================================== .. _section-pep305: @@ -801,7 +801,7 @@ of tuples or lists, quoting strings that contain the delimiter. Written and implemented by Kevin Altis, Dave Cole, Andrew McNamara, Skip Montanaro, Cliff Wells. -.. % ====================================================================== +.. ====================================================================== .. _section-pep307: @@ -844,7 +844,7 @@ codes for private use. Currently no codes have been specified. :pep:`307` - Extensions to the pickle protocol Written and implemented by Guido van Rossum and Tim Peters. -.. % ====================================================================== +.. ====================================================================== .. _section-slices: @@ -954,7 +954,7 @@ now the type object for the slice type, and is no longer a function. This is consistent with Python 2.2, where :class:`int`, :class:`str`, etc., underwent the same change. -.. % ====================================================================== +.. ====================================================================== Other Language Changes @@ -1042,8 +1042,6 @@ Here are all of the changes that Python 2.3 makes to the core Python language. objects available in the :mod:`types` module.) For example, you can create a new module object with the following code: - .. % XXX should new.py use PendingDeprecationWarning? - :: >>> import types @@ -1115,7 +1113,7 @@ Here are all of the changes that Python 2.3 makes to the core Python language. assigned to :attr:`__bases__` along the lines of those relating to assigning to an instance's :attr:`__class__` attribute. -.. % ====================================================================== +.. ====================================================================== String Changes @@ -1179,7 +1177,7 @@ String Changes the usual way when the only reference to them is from the internal dictionary of interned strings. (Implemented by Oren Tirosh.) -.. % ====================================================================== +.. ====================================================================== Optimizations @@ -1211,7 +1209,7 @@ Optimizations The net result of the 2.3 optimizations is that Python 2.3 runs the pystone benchmark around 25% faster than Python 2.2. -.. % ====================================================================== +.. ====================================================================== New, Improved, and Deprecated Modules @@ -1566,8 +1564,6 @@ complete list of changes, or look through the CVS logs for all the details. http://mail.python.org/pipermail/python-dev/2002-December/031107.html for a more detailed explanation of this change. (Implemented by Martin von Löwis.) - .. % - * Calling Tcl methods through :mod:`_tkinter` no longer returns only strings. Instead, if Tcl returns other objects those objects are converted to their Python equivalent, if one exists, or wrapped with a :class:`_tkinter.Tcl_Obj` @@ -1671,7 +1667,7 @@ complete list of changes, or look through the CVS logs for all the details. To implement this change, the :mod:`stringprep` module, the ``mkstringprep`` tool and the ``punycode`` encoding have been added. -.. % ====================================================================== +.. ====================================================================== Date/Time Type @@ -1726,7 +1722,7 @@ support for parsing strings and getting back a :class:`date` or For more information, refer to the module's reference documentation. (Contributed by Tim Peters.) -.. % ====================================================================== +.. ====================================================================== The optparse Module @@ -1791,7 +1787,7 @@ See the module's documentation for more details. Optik was written by Greg Ward, with suggestions from the readers of the Getopt SIG. -.. % ====================================================================== +.. ====================================================================== .. _section-pymalloc: @@ -1864,7 +1860,7 @@ and bundle it with the source of your extension. of the file :file:`Objects/obmalloc.c` in the Python source code. The above link points to the file within the SourceForge CVS browser. -.. % ====================================================================== +.. ====================================================================== Build and C API Changes @@ -1926,7 +1922,7 @@ Changes to Python's build process and to the C API include: the type name leading up to the final period will no longer have the desired effect. For more detail, read the API reference documentation or the source. -.. % ====================================================================== +.. ====================================================================== Port-Specific Changes @@ -1952,7 +1948,7 @@ source distribution, were updated for 2.3. (Contributed by Sean Reifschneider.) Other new platforms now supported by Python include AtheOS (http://www.atheos.cx/), GNU/Hurd, and OpenVMS. -.. % ====================================================================== +.. ====================================================================== .. _section-other: @@ -2003,7 +1999,7 @@ Some of the more notable changes are: executed next. A ``jump`` command has been added to the :mod:`pdb` debugger taking advantage of this new feature. (Implemented by Richie Hindle.) -.. % ====================================================================== +.. ====================================================================== Porting to Python 2.3 @@ -2042,8 +2038,6 @@ code: desired upper bits. For example, to clear just the top bit (bit 31), you could write ``0xffffffffL &~(1L<<31)``. - .. % The empty groups below prevent conversion to guillemets. - * You can no longer disable assertions by assigning to ``__debug__``. * The Distutils :func:`setup` function has gained various new keyword arguments @@ -2065,7 +2059,7 @@ code: * Names of extension types defined by the modules included with Python now contain the module and a ``'.'`` in front of the type name. -.. % ====================================================================== +.. ====================================================================== .. _acks: diff --git a/Doc/whatsnew/2.4.rst b/Doc/whatsnew/2.4.rst index d782f5d8d6a..bf30ac1eb3a 100644 --- a/Doc/whatsnew/2.4.rst +++ b/Doc/whatsnew/2.4.rst @@ -6,10 +6,10 @@ .. |release| replace:: 1.02 -.. % $Id: whatsnew24.tex 55005 2007-04-27 19:54:29Z guido.van.rossum $ -.. % Don't write extensive text for new sections; I'll do that. -.. % Feel free to add commented-out reminders of things that need -.. % to be covered. --amk +.. $Id: whatsnew24.tex 54632 2007-03-31 11:59:54Z georg.brandl $ +.. Don't write extensive text for new sections; I'll do that. +.. Feel free to add commented-out reminders of things that need +.. to be covered. --amk This article explains the new features in Python 2.4.1, released on March 30, 2005. @@ -29,7 +29,7 @@ Python Library Reference and the Python Reference Manual. Often you will be referred to the PEP for a particular new feature for explanations of the implementation and design rationale. -.. % ====================================================================== +.. ====================================================================== PEP 218: Built-In Set Objects @@ -83,7 +83,7 @@ currently no plans to deprecate the module. Originally proposed by Greg Wilson and ultimately implemented by Raymond Hettinger. -.. % ====================================================================== +.. ====================================================================== PEP 237: Unifying Long Integers and Integers @@ -108,7 +108,7 @@ the correct answer, 8589934592. Original PEP written by Moshe Zadka and GvR. The changes for 2.4 were implemented by Kalle Svensson. -.. % ====================================================================== +.. ====================================================================== PEP 289: Generator Expressions @@ -165,7 +165,7 @@ list comprehensions match generator expressions in this respect. Proposed by Raymond Hettinger and implemented by Jiwon Seo with early efforts steered by Hye-Shik Chang. -.. % ====================================================================== +.. ====================================================================== PEP 292: Simpler String Substitutions @@ -199,25 +199,19 @@ PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses If a key is missing from the dictionary, the :meth:`substitute` method will raise a :exc:`KeyError`. There's also a :meth:`safe_substitute` method that -ignores missing keys: - -.. % $ Terminate $-mode for Emacs - -:: +ignores missing keys:: >>> t = string.Template('$page: $title') >>> t.safe_substitute({'page':3}) '3: $title' -.. % $ Terminate math-mode for Emacs - .. seealso:: :pep:`292` - Simpler String Substitutions Written and implemented by Barry Warsaw. -.. % ====================================================================== +.. ====================================================================== PEP 318: Decorators for Functions and Methods @@ -346,7 +340,7 @@ returned. http://www.python.org/moin/PythonDecoratorLibrary This Wiki page contains several examples of decorators. -.. % ====================================================================== +.. ====================================================================== PEP 322: Reverse Iteration @@ -382,7 +376,7 @@ you want to reverse an iterator, first convert it to a list with :func:`list`. :pep:`322` - Reverse Iteration Written and implemented by Raymond Hettinger. -.. % ====================================================================== +.. ====================================================================== PEP 324: New subprocess Module @@ -468,7 +462,7 @@ of the PEP is highly recommended. Written and implemented by Peter Åstrand, with assistance from Fredrik Lundh and others. -.. % ====================================================================== +.. ====================================================================== PEP 327: Decimal Data Type @@ -698,7 +692,7 @@ includes a quick-start tutorial and a reference. proposed as a standard, and underlies the new Python decimal type. Much of this material was written by Mike Cowlishaw, designer of the Rexx language. -.. % ====================================================================== +.. ====================================================================== PEP 328: Multi-line Imports @@ -734,7 +728,7 @@ PEP was not implemented for Python 2.4, but was completed for Python 2.5. :pep:`328` - Imports: Multi-Line and Absolute/Relative Written by Aahz. Multi-line imports were implemented by Dima Dorfman. -.. % ====================================================================== +.. ====================================================================== PEP 331: Locale-Independent Float/String Conversions @@ -773,7 +767,7 @@ letting extensions such as GTK+ produce the correct results. :pep:`331` - Locale-Independent Float/String Conversions Written by Christian R. Reis, and implemented by Gustavo Carneiro. -.. % ====================================================================== +.. ====================================================================== Other Language Changes @@ -932,7 +926,7 @@ Here are all of the changes that Python 2.4 makes to the core Python language. * :const:`None` is now a constant; code that binds a new value to the name ``None`` is now a syntax error. (Contributed by Raymond Hettinger.) -.. % ====================================================================== +.. ====================================================================== Optimizations @@ -983,15 +977,13 @@ benchmark around 5% faster than Python 2.3 and 35% faster than Python 2.2. measurement of Python's performance. Your own applications may show greater or smaller benefits from Python 2.4.) -.. % pystone is almost useless for comparing different versions of Python; -.. % instead, it excels at predicting relative Python performance on -.. % different machines. -.. % So, this section would be more informative if it used other tools -.. % such as pybench and parrotbench. For a more application oriented -.. % benchmark, try comparing the timings of test_decimal.py under 2.3 -.. % and 2.4. +.. pystone is almost useless for comparing different versions of Python; + instead, it excels at predicting relative Python performance on different + machines. So, this section would be more informative if it used other tools + such as pybench and parrotbench. For a more application oriented benchmark, + try comparing the timings of test_decimal.py under 2.3 and 2.4. -.. % ====================================================================== +.. ====================================================================== New, Improved, and Deprecated Modules @@ -1322,9 +1314,9 @@ complete list of changes, or look through the CVS logs for all the details. * The :mod:`mpz`, :mod:`rotor`, and :mod:`xreadlines` modules have been removed. -.. % ====================================================================== -.. % whole new modules get described in subsections here -.. % ===================== +.. ====================================================================== +.. whole new modules get described in subsections here +.. ===================== cookielib @@ -1348,7 +1340,7 @@ URLs. This module was contributed by John J. Lee. -.. % ================== +.. ================== doctest @@ -1447,7 +1439,7 @@ you get the following output:: +rather ********************************************************************** -.. % ====================================================================== +.. ====================================================================== Build and C API Changes @@ -1500,7 +1492,7 @@ Some of the changes to Python's build process and to the C API are: * The :ctype:`tracebackobject` type has been renamed to :ctype:`PyTracebackObject`. -.. % ====================================================================== +.. ====================================================================== Port-Specific Changes @@ -1509,7 +1501,7 @@ Port-Specific Changes * The Windows port now builds under MSVC++ 7.1 as well as version 6. (Contributed by Martin von Löwis.) -.. % ====================================================================== +.. ====================================================================== Porting to Python 2.4 @@ -1556,7 +1548,7 @@ code: for certain illegal values; previously these errors would pass silently. For example, you can no longer set a handler on the :const:`SIGKILL` signal. -.. % ====================================================================== +.. ====================================================================== .. _acks: diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst index 497c612dee1..a5169f34bcd 100644 --- a/Doc/whatsnew/2.5.rst +++ b/Doc/whatsnew/2.5.rst @@ -6,8 +6,8 @@ .. |release| replace:: 1.01 -.. % $Id: whatsnew25.tex 56611 2007-07-29 08:26:10Z georg.brandl $ -.. % Fix XXX comments +.. $Id: whatsnew25.tex 56611 2007-07-29 08:26:10Z georg.brandl $ +.. Fix XXX comments This article explains the new features in Python 2.5. The final release of Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned @@ -45,7 +45,7 @@ and design rationale, refer to the PEP for a particular new feature. Comments, suggestions, and error reports for this document are welcome; please e-mail them to the author or open a bug in the Python bug tracker. -.. % ====================================================================== +.. ====================================================================== .. _pep-308: @@ -123,7 +123,7 @@ conditional expressions, you won't run into this case. PEP written by Guido van Rossum and Raymond D. Hettinger; implemented by Thomas Wouters. -.. % ====================================================================== +.. ====================================================================== .. _pep-309: @@ -201,7 +201,7 @@ example would be:: PEP proposed and written by Peter Harris; implemented by Hye-Shik Chang and Nick Coghlan, with adaptations by Raymond Hettinger. -.. % ====================================================================== +.. ====================================================================== .. _pep-314: @@ -248,7 +248,7 @@ Package uploading was implemented by Martin von Löwis and Richard Jones. PEP proposed and written by A.M. Kuchling, Richard Jones, and Fred Drake; implemented by Richard Jones and Fred Drake. -.. % ====================================================================== +.. ====================================================================== .. _pep-328: @@ -333,7 +333,7 @@ statement, only the ``from ... import`` form. http://codespeak.net/py/current/doc/index.html The py library by Holger Krekel, which contains the :mod:`py.std` package. -.. % ====================================================================== +.. ====================================================================== .. _pep-338: @@ -359,7 +359,7 @@ archive. :pep:`338` - Executing modules as scripts PEP written and implemented by Nick Coghlan. -.. % ====================================================================== +.. ====================================================================== .. _pep-341: @@ -407,7 +407,7 @@ in the *final-block* is still run. :pep:`341` - Unifying try-except and try-finally PEP written by Georg Brandl; implementation by Thomas Lee. -.. % ====================================================================== +.. ====================================================================== .. _pep-342: @@ -553,7 +553,7 @@ exhausted. http://www.sidhe.org/~dan/blog/archives/000178.html An explanation of coroutines from a Perl point of view, written by Dan Sugalski. -.. % ====================================================================== +.. ====================================================================== .. _pep-343: @@ -803,7 +803,7 @@ bound to a variable, and calls ``object.close`` at the end of the block. :: The documentation for the :mod:`contextlib` module. -.. % ====================================================================== +.. ====================================================================== .. _pep-352: @@ -862,7 +862,7 @@ to be able to remove the string-exception feature in a few releases. :pep:`352` - Required Superclass for Exceptions PEP written by Brett Cannon and Guido van Rossum; implemented by Brett Cannon. -.. % ====================================================================== +.. ====================================================================== .. _pep-353: @@ -921,7 +921,7 @@ read to learn about supporting 64-bit platforms. :pep:`353` - Using ssize_t as the index type PEP written and implemented by Martin von Löwis. -.. % ====================================================================== +.. ====================================================================== .. _pep-357: @@ -964,7 +964,7 @@ A corresponding :attr:`nb_index` slot was added to the C-level :pep:`357` - Allowing Any Object to be Used for Slicing PEP written and implemented by Travis Oliphant. -.. % ====================================================================== +.. ====================================================================== .. _other-lang: @@ -1024,7 +1024,7 @@ Here are all of the changes that Python 2.5 makes to the core Python language. (Implemented by Georg Brandl following a suggestion by Tom Lynn.) - .. % RFE #1491485 + .. RFE #1491485 * The :func:`min` and :func:`max` built-in functions gained a ``key`` keyword parameter analogous to the ``key`` argument for :meth:`sort`. This parameter @@ -1055,7 +1055,7 @@ Here are all of the changes that Python 2.5 makes to the core Python language. return non-negative numbers, and users often seem to use ``id(self)`` in :meth:`__hash__` methods (though this is discouraged). - .. % Bug #1536021 + .. Bug #1536021 * ASCII is now the default encoding for modules. It's now a syntax error if a module contains string literals with 8-bit characters but doesn't have an @@ -1106,7 +1106,7 @@ Here are all of the changes that Python 2.5 makes to the core Python language. (Implemented by Brett Cannon.) -.. % ====================================================================== +.. ====================================================================== .. _interactive: @@ -1129,7 +1129,7 @@ The Python executable now accepts the standard long options :option:`--help` and :option:`--version`; on Windows, it also accepts the :option:`/?` option for displaying a help message. (Implemented by Georg Brandl.) -.. % ====================================================================== +.. ====================================================================== .. _opts: @@ -1155,14 +1155,14 @@ marked in the following list. Andrew Dalke at the NeedForSpeed sprint. Character maps were improved by Walter Dörwald and Martin von Löwis.) - .. % Patch 1313939, 1359618 + .. Patch 1313939, 1359618 * The :func:`long(str, base)` function is now faster on long digit strings because fewer intermediate results are calculated. The peak is for strings of around 800--1000 digits where the function is 6 times faster. (Contributed by Alan McIntyre and committed at the NeedForSpeed sprint.) - .. % Patch 1442927 + .. Patch 1442927 * It's now illegal to mix iterating over a file with ``for line in file`` and calling the file object's :meth:`read`/:meth:`readline`/:meth:`readlines` @@ -1172,7 +1172,7 @@ marked in the following list. methods will now trigger a :exc:`ValueError` from the :meth:`read\*` method. (Implemented by Thomas Wouters.) - .. % Patch 1397960 + .. Patch 1397960 * The :mod:`struct` module now compiles structure format strings into an internal representation and caches this representation, yielding a 20% speedup. @@ -1194,8 +1194,8 @@ marked in the following list. sprint.) Frame objects are also slightly smaller, which may improve cache locality and reduce memory usage a bit. (Contributed by Neal Norwitz.) - .. % Patch 876206 - .. % Patch 1337051 + .. Patch 876206 + .. Patch 1337051 * Python's built-in exceptions are now new-style classes, a change that speeds up instantiation considerably. Exception handling in Python 2.5 is therefore @@ -1206,9 +1206,9 @@ marked in the following list. that the interpreter makes fewer :cfunc:`open` and :cfunc:`stat` calls on startup. (Contributed by Martin von Löwis and Georg Brandl.) - .. % Patch 921466 + .. Patch 921466 -.. % ====================================================================== +.. ====================================================================== .. _modules: @@ -1234,7 +1234,7 @@ complete list of changes, or look through the SVN logs for all the details. entire input was fed to the non-incremental codec. See the :mod:`codecs` module documentation for details. (Designed and implemented by Walter Dörwald.) - .. % Patch 1436130 + .. Patch 1436130 * The :mod:`collections` module gained a new type, :class:`defaultdict`, that subclasses the standard :class:`dict` type. The new type mostly behaves like a @@ -1331,12 +1331,12 @@ complete list of changes, or look through the SVN logs for all the details. easier to use non-ASCII characters in tests contained within a docstring. (Contributed by Bjorn Tillenius.) - .. % Patch 1080727 + .. Patch 1080727 * The :mod:`email` package has been updated to version 4.0. (Contributed by Barry Warsaw.) - .. % XXX need to provide some more detail here + .. XXX need to provide some more detail here * The :mod:`fileinput` module was made more flexible. Unicode filenames are now supported, and a *mode* parameter that defaults to ``"r"`` was added to the @@ -1394,7 +1394,7 @@ complete list of changes, or look through the SVN logs for all the details. (Contributed by Georg Brandl.) - .. % Patch 1180296 + .. Patch 1180296 * The :mod:`mailbox` module underwent a massive rewrite to add the capability to modify mailboxes in addition to reading them. A new set of classes that include @@ -1462,7 +1462,7 @@ complete list of changes, or look through the SVN logs for all the details. :attr:`st_birthtime`. The :attr:`st_flags` member is also available, if the platform supports it. (Contributed by Antti Louko and Diego Pettenò.) - .. % (Patch 1180695, 1212117) + .. (Patch 1180695, 1212117) * The Python debugger provided by the :mod:`pdb` module can now store lists of commands to execute when a breakpoint is reached and execution stops. Once @@ -1471,7 +1471,7 @@ complete list of changes, or look through the SVN logs for all the details. include commands that resume execution, such as ``continue`` or ``next``. (Contributed by Grégoire Dooms.) - .. % Patch 790710 + .. Patch 790710 * The :mod:`pickle` and :mod:`cPickle` modules no longer accept a return value of ``None`` from the :meth:`__reduce__` method; the method must return a tuple @@ -1512,14 +1512,14 @@ complete list of changes, or look through the SVN logs for all the details. :mod:`readline` module and therefore now works on non-Unix platforms. (Patch from Robert Kiendl.) - .. % Patch #1472854 + .. Patch #1472854 * The :mod:`SimpleXMLRPCServer` and :mod:`DocXMLRPCServer` classes now have a :attr:`rpc_paths` attribute that constrains XML-RPC operations to a limited set of URL paths; the default is to allow only ``'/'`` and ``'/RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables this path checking. - .. % Bug #1473048 + .. Bug #1473048 * The :mod:`socket` module now supports :const:`AF_NETLINK` sockets on Linux, thanks to a patch from Philippe Biondi. Netlink sockets are a Linux-specific @@ -1585,7 +1585,7 @@ complete list of changes, or look through the SVN logs for all the details. The compression used for a tarfile opened in stream mode can now be autodetected using the mode ``'r|*'``. (Contributed by Lars Gustäbel.) - .. % patch 918101 + .. patch 918101 * The :mod:`threading` module now lets you set the stack size used when new threads are created. The :func:`stack_size([*size*])` function returns the @@ -1593,7 +1593,7 @@ complete list of changes, or look through the SVN logs for all the details. sets a new value. Not all platforms support changing the stack size, but Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.) - .. % Patch 1454481 + .. Patch 1454481 * The :mod:`unicodedata` module has been updated to use version 4.1.0 of the Unicode character database. Version 3.2.0 is required by some specifications, @@ -1643,29 +1643,29 @@ complete list of changes, or look through the SVN logs for all the details. of additional browsers were added to the supported list such as Firefox, Opera, Konqueror, and elinks. (Contributed by Oleg Broytmann and Georg Brandl.) - .. % Patch #754022 + .. Patch #754022 * The :mod:`xmlrpclib` module now supports returning :class:`datetime` objects for the XML-RPC date type. Supply ``use_datetime=True`` to the :func:`loads` function or the :class:`Unmarshaller` class to enable this feature. (Contributed by Skip Montanaro.) - .. % Patch 1120353 + .. Patch 1120353 * The :mod:`zipfile` module now supports the ZIP64 version of the format, meaning that a .zip archive can now be larger than 4 GiB and can contain individual files larger than 4 GiB. (Contributed by Ronald Oussoren.) - .. % Patch 1446489 + .. Patch 1446489 * The :mod:`zlib` module's :class:`Compress` and :class:`Decompress` objects now support a :meth:`copy` method that makes a copy of the object's internal state and returns a new :class:`Compress` or :class:`Decompress` object. (Contributed by Chris AtLee.) - .. % Patch 1435422 + .. Patch 1435422 -.. % ====================================================================== +.. ====================================================================== .. _module-ctypes: @@ -1746,7 +1746,7 @@ modules, now that :mod:`ctypes` is included with core Python. The documentation for the :mod:`ctypes` module. -.. % ====================================================================== +.. ====================================================================== .. _module-etree: @@ -1863,7 +1863,7 @@ read the package's official documentation for more details. http://effbot.org/zone/element-index.htm Official documentation for ElementTree. -.. % ====================================================================== +.. ====================================================================== .. _module-hashlib: @@ -1917,7 +1917,7 @@ with the same digest state. The documentation for the :mod:`hashlib` module. -.. % ====================================================================== +.. ====================================================================== .. _module-sqlite: @@ -2026,7 +2026,7 @@ http://www.sqlite.org. :pep:`249` - Database API Specification 2.0 PEP written by Marc-André Lemburg. -.. % ====================================================================== +.. ====================================================================== .. _module-wsgiref: @@ -2039,7 +2039,7 @@ between web servers and Python web applications and is described in :pep:`333`. The :mod:`wsgiref` package is a reference implementation of the WSGI specification. -.. % XXX should this be in a PEP 333 section instead? +.. XXX should this be in a PEP 333 section instead? The package includes a basic HTTP server that will run a WSGI application; this server is useful for debugging but isn't intended for production use. Setting @@ -2054,8 +2054,8 @@ up a server takes only a few lines of code:: httpd = simple_server.make_server(host, port, wsgi_app) httpd.serve_forever() -.. % XXX discuss structure of WSGI applications? -.. % XXX provide an example using Django or some other framework? +.. XXX discuss structure of WSGI applications? +.. XXX provide an example using Django or some other framework? .. seealso:: @@ -2066,7 +2066,7 @@ up a server takes only a few lines of code:: :pep:`333` - Python Web Server Gateway Interface v1.0 PEP written by Phillip J. Eby. -.. % ====================================================================== +.. ====================================================================== .. _build-api: @@ -2125,8 +2125,8 @@ Changes to Python's build process and to the C API include: Schemenauer, plus the participants in a number of AST sprints at conferences such as PyCon. - .. % List of names taken from Jeremy's python-dev post at - .. % http://mail.python.org/pipermail/python-dev/2005-October/057500.html + .. List of names taken from Jeremy's python-dev post at + .. http://mail.python.org/pipermail/python-dev/2005-October/057500.html * Evan Jones's patch to obmalloc, first described in a talk at PyCon DC 2005, was applied. Python 2.4 allocated small objects in 256K-sized arenas, but never @@ -2194,7 +2194,7 @@ Changes to Python's build process and to the C API include: range = PyObject_CallFunction((PyObject*) &PyRange_Type, "lll", start, stop, step); -.. % ====================================================================== +.. ====================================================================== .. _ports: @@ -2214,7 +2214,7 @@ Port-Specific Changes extension modules. :file:`.pyd` is now the only filename extension that will be searched for. -.. % ====================================================================== +.. ====================================================================== .. _porting: @@ -2269,7 +2269,7 @@ code: allocated with one family's :cfunc:`\*_Malloc` must be freed with the corresponding family's :cfunc:`\*_Free` function. -.. % ====================================================================== +.. ====================================================================== .. _acks: diff --git a/Doc/whatsnew/2.6.rst b/Doc/whatsnew/2.6.rst index b29cb7bb3f0..4a8eb76f1af 100644 --- a/Doc/whatsnew/2.6.rst +++ b/Doc/whatsnew/2.6.rst @@ -2,54 +2,53 @@ What's New in Python 2.6 **************************** -.. % XXX mention switch to reST for documentation -.. % XXX mention switch to Roundup for bug tracking +.. XXX mention switch to Roundup for bug tracking :Author: A.M. Kuchling :Release: |release| :Date: |today| -.. % $Id: whatsnew26.tex 55963 2007-06-13 18:07:49Z guido.van.rossum $ -.. % Rules for maintenance: -.. % -.. % * Anyone can add text to this document. Do not spend very much time -.. % on the wording of your changes, because your text will probably -.. % get rewritten to some degree. -.. % -.. % * The maintainer will go through Misc/NEWS periodically and add -.. % changes; it's therefore more important to add your changes to -.. % Misc/NEWS than to this file. -.. % -.. % * This is not a complete list of every single change; completeness -.. % is the purpose of Misc/NEWS. Some changes I consider too small -.. % or esoteric to include. If such a change is added to the text, -.. % I'll just remove it. (This is another reason you shouldn't spend -.. % too much time on writing your addition.) -.. % -.. % * If you want to draw your new text to the attention of the -.. % maintainer, add 'XXX' to the beginning of the paragraph or -.. % section. -.. % -.. % * It's OK to just add a fragmentary note about a change. For -.. % example: "XXX Describe the transmogrify() function added to the -.. % socket module." The maintainer will research the change and -.. % write the necessary text. -.. % -.. % * You can comment out your additions if you like, but it's not -.. % necessary (especially when a final release is some months away). -.. % -.. % * Credit the author of a patch or bugfix. Just the name is -.. % sufficient; the e-mail address isn't necessary. -.. % -.. % * It's helpful to add the bug/patch number as a comment: -.. % -.. % % Patch 12345 -.. % XXX Describe the transmogrify() function added to the socket -.. % module. -.. % (Contributed by P.Y. Developer.) -.. % -.. % This saves the maintainer the effort of going through the SVN log -.. % when researching a change. +.. $Id: whatsnew26.tex 55746 2007-06-02 18:33:53Z neal.norwitz $ + Rules for maintenance: + + * Anyone can add text to this document. Do not spend very much time + on the wording of your changes, because your text will probably + get rewritten to some degree. + + * The maintainer will go through Misc/NEWS periodically and add + changes; it's therefore more important to add your changes to + Misc/NEWS than to this file. + + * This is not a complete list of every single change; completeness + is the purpose of Misc/NEWS. Some changes I consider too small + or esoteric to include. If such a change is added to the text, + I'll just remove it. (This is another reason you shouldn't spend + too much time on writing your addition.) + + * If you want to draw your new text to the attention of the + maintainer, add 'XXX' to the beginning of the paragraph or + section. + + * It's OK to just add a fragmentary note about a change. For + example: "XXX Describe the transmogrify() function added to the + socket module." The maintainer will research the change and + write the necessary text. + + * You can comment out your additions if you like, but it's not + necessary (especially when a final release is some months away). + + * Credit the author of a patch or bugfix. Just the name is + sufficient; the e-mail address isn't necessary. + + * It's helpful to add the bug/patch number as a comment: + + % Patch 12345 + XXX Describe the transmogrify() function added to the socket + module. + (Contributed by P.Y. Developer.) + + This saves the maintainer the effort of going through the SVN log + when researching a change. This article explains the new features in Python 2.6. No release date for Python 2.6 has been set; it will probably be released in mid 2008. @@ -60,14 +59,14 @@ should refer to the documentation for Python 2.6. If you want to understand the complete implementation and design rationale, refer to the PEP for a particular new feature. -.. % Compare with previous release in 2 - 3 sentences here. -.. % add hyperlink when the documentation becomes available online. +.. Compare with previous release in 2 - 3 sentences here. + add hyperlink when the documentation becomes available online. -.. % ====================================================================== -.. % Large, PEP-level features and changes should be described here. -.. % Should there be a new section here for 3k migration? -.. % Or perhaps a more general section describing module changes/deprecation? -.. % ====================================================================== +.. ======================================================================== +.. Large, PEP-level features and changes should be described here. +.. Should there be a new section here for 3k migration? +.. Or perhaps a more general section describing module changes/deprecation? +.. ======================================================================== Python 3.0 ================ @@ -156,7 +155,7 @@ conversion to LaTeX as an output format. `Docutils `__: The fundamental reStructured Text parser and toolset. - `Documenting Python `__: Describes how to write for + :ref:`documenting-index`: Describes how to write for Python's documentation. @@ -407,7 +406,7 @@ bound to a variable, and calls ``object.close`` at the end of the block. :: The documentation for the :mod:`contextlib` module. -.. % ====================================================================== +.. ====================================================================== .. _pep-0366: @@ -425,7 +424,7 @@ importers can then set :attr:`__package__`. The :mod:`runpy` module that implements the :option:`-m` switch now does this, so relative imports can now be used in scripts running from inside a package. -.. % ====================================================================== +.. ====================================================================== .. _pep-3110: @@ -475,7 +474,7 @@ work. :pep:`3110` - Catching Exceptions in Python 3000 PEP written and implemented by Collin Winter. -.. % ====================================================================== +.. ====================================================================== .. _pep-3119: @@ -509,14 +508,14 @@ Here are all of the changes that Python 2.6 makes to the core Python language. >>> f(**ud) ['a', 'b'] - .. % Patch 1686487 + .. Patch 1686487 * The built-in types now have improved support for extended slicing syntax, where various combinations of ``(start, stop, step)`` are supplied. Previously, the support was partial and certain corner cases wouldn't work. (Implemented by Thomas Wouters.) - .. % Revision 57619 + .. Revision 57619 * Properties now have two attributes, :attr:`setter` and :attr:`deleter`, that are useful shortcuts for @@ -544,14 +543,14 @@ Here are all of the changes that Python 2.6 makes to the core Python language. This is a backport of a Python 3.0 change. (Contributed by Mark Dickinson.) - .. % Patch #1675423 + .. Patch #1675423 A numerical nicety: when creating a complex number from two floats on systems that support signed zeros (-0 and +0), the :func:`complex()` constructor will now preserve the sign of the zero. - .. % Patch 1507 + .. Patch 1507 * Changes to the :class:`Exception` interface as dictated by :pep:`352` continue to be made. For 2.6, @@ -564,26 +563,26 @@ Here are all of the changes that Python 2.6 makes to the core Python language. will not inadvertently catch :exc:`GeneratorExit`. (Contributed by Chad Austin.) - .. % Patch #1537 + .. Patch #1537 * The :func:`compile` built-in function now accepts keyword arguments as well as positional parameters. (Contributed by Thomas Wouters.) - .. % Patch 1444529 + .. Patch 1444529 * The :func:`complex` constructor now accepts strings containing parenthesized complex numbers, letting ``complex(repr(cmplx))`` will now round-trip values. For example, ``complex('(3+4j)')`` now returns the value (3+4j). - .. % Patch 1491866 + .. Patch 1491866 * The string :meth:`translate` method now accepts ``None`` as the translation table parameter, which is treated as the identity transformation. This makes it easier to carry out operations that only delete characters. (Contributed by Bengt Richter.) - .. % Patch 1193128 + .. Patch 1193128 * The built-in :func:`dir` function now checks for a :meth:`__dir__` method on the objects it receives. This method must return a list @@ -592,14 +591,14 @@ Here are all of the changes that Python 2.6 makes to the core Python language. Objects that have :meth:`__getattr__` or :meth:`__getattribute__` methods can use this to advertise pseudo-attributes they will honor. - .. % Patch 1591665 + .. Patch 1591665 * An obscure change: when you use the the :func:`locals` function inside a :keyword:`class` statement, the resulting dictionary no longer returns free variables. (Free variables, in this case, are variables referred to in the :keyword:`class` statement that aren't attributes of the class.) -.. % ====================================================================== +.. ====================================================================== Optimizations @@ -612,7 +611,7 @@ Optimizations The net result of the 2.6 optimizations is that Python 2.6 runs the pystone benchmark around XX% faster than Python 2.5. -.. % ====================================================================== +.. ====================================================================== New, Improved, and Deprecated Modules @@ -627,7 +626,7 @@ complete list of changes, or look through the CVS logs for all the details. available, instead of restricting itself to protocol 1. (Contributed by W. Barnes.) - .. % Patch 1551443 + .. Patch 1551443 * A new data type in the :mod:`collections` module: :class:`namedtuple(typename, fieldnames)` is a factory function that creates subclasses of the standard tuple @@ -677,14 +676,14 @@ complete list of changes, or look through the CVS logs for all the details. * The :mod:`ctypes` module now supports a :class:`c_bool` datatype that represents the C99 ``bool`` type. (Contributed by David Remahl.) - .. % Patch 1649190 + .. Patch 1649190 The :mod:`ctypes` string, buffer and array types also have improved support for extended slicing syntax, where various combinations of ``(start, stop, step)`` are supplied. (Implemented by Thomas Wouters.) - .. % Revision 57769 + .. Revision 57769 * A new method in the :mod:`curses` module: for a window, :meth:`chgat` changes @@ -722,12 +721,12 @@ complete list of changes, or look through the CVS logs for all the details. to drop the built-in in the 2.x series. (Patched by Christian Heimes.) - .. % Patch 1739906 + .. Patch 1739906 * The :func:`glob.glob` function can now return Unicode filenames if a Unicode path was used and Unicode filenames are matched within the directory. - .. % Patch #1001604 + .. Patch #1001604 * The :mod:`gopherlib` module has been removed. @@ -760,7 +759,7 @@ complete list of changes, or look through the CVS logs for all the details. :func:`macostools.touched` function to be removed because it depended on the :mod:`macfs` module. - .. % Patch #1490190 + .. Patch #1490190 * The :mod:`new` module has been removed from Python 3.0. Importing it therefore @@ -783,13 +782,13 @@ complete list of changes, or look through the CVS logs for all the details. into an infinite recursion if there's a symlink that points to a parent directory. - .. % Patch 1273829 + .. Patch 1273829 * The ``os.environ`` object's :meth:`clear` method will now unset the environment variables using :func:`os.unsetenv` in addition to clearing the object's keys. (Contributed by Martin Horcicka.) - .. % Patch #1181 + .. Patch #1181 * In the :mod:`os.path` module, the :func:`splitext` function has been changed to not split on leading period characters. @@ -797,27 +796,27 @@ complete list of changes, or look through the CVS logs for all the details. For example, ``os.path.splitext('.ipython')`` now returns ``('.ipython', '')`` instead of ``('', '.ipython')``. - .. % Bug #115886 + .. Bug #115886 A new function, :func:`relpath(path, start)` returns a relative path from the ``start`` path, if it's supplied, or from the current working directory to the destination ``path``. (Contributed by Richard Barran.) - .. % Patch 1339796 + .. Patch 1339796 On Windows, :func:`os.path.expandvars` will now expand environment variables in the form "%var%", and "~user" will be expanded into the user's home directory path. (Contributed by Josiah Carlson.) - .. % Patch 957650 + .. Patch 957650 * The Python debugger provided by the :mod:`pdb` module gained a new command: "run" restarts the Python program being debugged, and can optionally take new command-line arguments for the program. (Contributed by Rocky Bernstein.) - .. % Patch #1393667 + .. Patch #1393667 * New functions in the :mod:`posix` module: :func:`chflags` and :func:`lchflags` are wrappers for the corresponding system calls (where they're available). @@ -833,7 +832,7 @@ complete list of changes, or look through the CVS logs for all the details. on earlier versions of Python. (Contributed by Shawn Ligocki.) - .. % Issue 1727780 + .. Issue 1727780 * The :mod:`rgbimg` module has been removed. @@ -876,7 +875,7 @@ complete list of changes, or look through the CVS logs for all the details. added by Facundo Batista; LMTP implemented by Leif Hedstrom.) - .. % Patch #957003 + .. Patch #957003 * A new variable in the :mod:`sys` module, :attr:`float_info`, is a dictionary @@ -887,7 +886,7 @@ complete list of changes, or look through the CVS logs for all the details. (smallest difference between 1.0 and the next largest value representable), and several others. (Contributed by Christian Heimes.) - .. % Patch 1534 + .. Patch 1534 * The :mod:`tarfile` module now supports POSIX.1-2001 (pax) and POSIX.1-1988 (ustar) format tarfiles, in addition to the GNU tar @@ -923,7 +922,7 @@ complete list of changes, or look through the CVS logs for all the details. behaviour can now be changed by passing ``delete=False`` to the constructor. (Contributed by Damien Miller.) - .. % Patch #1537850 + .. Patch #1537850 * The :mod:`test.test_support` module now contains a :func:`EnvironmentVarGuard` @@ -960,7 +959,7 @@ complete list of changes, or look through the CVS logs for all the details. whitespace. >>> - .. % Patch #1581073 + .. Patch #1581073 * The :mod:`timeit` module now accepts callables as well as strings for the statement being timed and for the setup code. @@ -970,7 +969,7 @@ complete list of changes, or look through the CVS logs for all the details. ``timeit(stmt, setup, time, number)`` create an instance and call the corresponding method. (Contributed by Erik Demaine.) - .. % Patch #1533909 + .. Patch #1533909 * An optional ``timeout`` parameter was added to the :func:`urllib.urlopen` function and the @@ -995,7 +994,7 @@ complete list of changes, or look through the CVS logs for all the details. open the socket and begin listening for connections. (Contributed by Peter Parente.) - .. % Patch 1599845 + .. Patch 1599845 :class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` attribute; if true, the exception and formatted traceback are returned @@ -1005,8 +1004,8 @@ complete list of changes, or look through the CVS logs for all the details. information. (Contributed by Alan McIntyre as part of his project for Google's Summer of Code 2007.) -.. % ====================================================================== -.. % whole new modules get described in subsections here +.. ====================================================================== +.. whole new modules get described in subsections here Improved SSL Support -------------------------------------------------- @@ -1028,7 +1027,7 @@ XXX Certain features require the OpenSSL package to be installed, notably SSL module documentation. -.. % ====================================================================== +.. ====================================================================== Build and C API Changes @@ -1045,7 +1044,7 @@ Changes to Python's build process and to the C API include: that wish to use the :mod:`bsddb` module for their own purposes. (Contributed by Duncan Grisby.) - .. % Patch 1551895 + .. Patch 1551895 * Several functions return information about the platform's floating-point support. :cfunc:`PyFloat_GetMax` returns @@ -1057,9 +1056,9 @@ Changes to Python's build process and to the C API include: (smallest difference between 1.0 and the next largest value representable), and several others. - .. % Issue 1534 + .. Issue 1534 -.. % ====================================================================== +.. ====================================================================== Port-Specific Changes @@ -1067,7 +1066,7 @@ Port-Specific Changes Platform-specific changes go here. -.. % ====================================================================== +.. ====================================================================== .. _section-other: @@ -1084,7 +1083,7 @@ Some of the more notable changes are: * Details will go here. -.. % ====================================================================== +.. ====================================================================== Porting to Python 2.6 @@ -1098,9 +1097,9 @@ code: :exc:`StandardError` but now it is, through :exc:`IOError`. (Implemented by Gregory P. Smith.) - .. % http://bugs.python.org/issue1706815 + .. Issue 1706815 -.. % ====================================================================== +.. ====================================================================== .. _acks: diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py index 249b74c1bbd..2d75a38f740 100644 --- a/Lib/distutils/command/bdist_wininst.py +++ b/Lib/distutils/command/bdist_wininst.py @@ -304,5 +304,5 @@ class bdist_wininst(Command): directory = os.path.dirname(__file__) # we must use a wininst-x.y.exe built with the same C compiler # used for python. XXX What about mingw, borland, and so on? - filename = os.path.join(directory, "wininst-%s.exe" % bv) + filename = os.path.join(directory, "wininst-%.1f.exe" % bv) return open(filename, "rb").read() diff --git a/Lib/distutils/command/wininst-6.exe b/Lib/distutils/command/wininst-6.0.exe similarity index 100% rename from Lib/distutils/command/wininst-6.exe rename to Lib/distutils/command/wininst-6.0.exe diff --git a/Lib/distutils/command/wininst-8.exe b/Lib/distutils/command/wininst-8.0.exe similarity index 100% rename from Lib/distutils/command/wininst-8.exe rename to Lib/distutils/command/wininst-8.0.exe diff --git a/Lib/distutils/command/wininst-9.0.exe b/Lib/distutils/command/wininst-9.0.exe new file mode 100644 index 00000000000..5e0144c92b5 Binary files /dev/null and b/Lib/distutils/command/wininst-9.0.exe differ diff --git a/Lib/test/output/test_cProfile b/Lib/test/output/test_cProfile index 7ac1433c265..7561bcb6401 100644 --- a/Lib/test/output/test_cProfile +++ b/Lib/test/output/test_cProfile @@ -5,7 +5,7 @@ test_cProfile ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 1.000 1.000 :1() - 2 0.000 0.000 0.000 0.000 io.py:1211(flush) + 2 0.000 0.000 0.000 0.000 io.py:1212(flush) 1 0.000 0.000 0.000 0.000 io.py:269(flush) 1 0.000 0.000 0.000 0.000 io.py:656(closed) 1 0.000 0.000 0.000 0.000 io.py:874(flush) @@ -30,7 +30,7 @@ test_cProfile Function called... ncalls tottime cumtime :1() -> 1 0.270 1.000 test_cProfile.py:30(testfunc) -io.py:1211(flush) -> 1 0.000 0.000 io.py:269(flush) +io.py:1212(flush) -> 1 0.000 0.000 io.py:269(flush) 1 0.000 0.000 io.py:874(flush) io.py:269(flush) -> io.py:656(closed) -> @@ -53,7 +53,7 @@ test_cProfile.py:89(helper2_indirect) -> 2 0.006 0.040 test_cProfile.py:93(helper2) -> 8 0.064 0.080 test_cProfile.py:103(subhelper) 8 0.000 0.008 {hasattr} {exec} -> 1 0.000 1.000 :1() - 2 0.000 0.000 io.py:1211(flush) + 2 0.000 0.000 io.py:1212(flush) {hasattr} -> 12 0.012 0.012 test_cProfile.py:115(__getattr__) {method 'append' of 'list' objects} -> {method 'disable' of '_lsprof.Profiler' objects} -> @@ -65,10 +65,10 @@ test_cProfile.py:93(helper2) -> 8 0.064 0.080 Function was called by... ncalls tottime cumtime :1() <- 1 0.000 1.000 {exec} -io.py:1211(flush) <- 2 0.000 0.000 {exec} -io.py:269(flush) <- 1 0.000 0.000 io.py:1211(flush) +io.py:1212(flush) <- 2 0.000 0.000 {exec} +io.py:269(flush) <- 1 0.000 0.000 io.py:1212(flush) io.py:656(closed) <- 1 0.000 0.000 io.py:874(flush) -io.py:874(flush) <- 1 0.000 0.000 io.py:1211(flush) +io.py:874(flush) <- 1 0.000 0.000 io.py:1212(flush) test_cProfile.py:103(subhelper) <- 8 0.064 0.080 test_cProfile.py:93(helper2) test_cProfile.py:115(__getattr__) <- 16 0.016 0.016 test_cProfile.py:103(subhelper) 12 0.012 0.012 {hasattr} diff --git a/Lib/test/output/test_profile b/Lib/test/output/test_profile index 95629783c9c..f5e716097b4 100644 --- a/Lib/test/output/test_profile +++ b/Lib/test/output/test_profile @@ -10,7 +10,7 @@ test_profile 12 0.000 0.000 0.012 0.001 :0(hasattr) 1 0.000 0.000 0.000 0.000 :0(setprofile) 1 0.000 0.000 1.000 1.000 :1() - 2 0.000 0.000 0.000 0.000 io.py:1211(flush) + 2 0.000 0.000 0.000 0.000 io.py:1212(flush) 1 0.000 0.000 0.000 0.000 io.py:269(flush) 1 0.000 0.000 0.000 0.000 io.py:656(closed) 1 0.000 0.000 0.000 0.000 io.py:874(flush) @@ -33,11 +33,11 @@ Function called... :0(append) -> :0(exc_info) -> :0(exec) -> :1()(1) 1.000 - io.py:1211(flush)(2) 0.000 + io.py:1212(flush)(2) 0.000 :0(hasattr) -> test_profile.py:115(__getattr__)(12) 0.028 :0(setprofile) -> :1() -> test_profile.py:30(testfunc)(1) 1.000 -io.py:1211(flush) -> io.py:269(flush)(1) 0.000 +io.py:1212(flush) -> io.py:269(flush)(1) 0.000 io.py:874(flush)(1) 0.000 io.py:269(flush) -> io.py:656(closed) -> @@ -74,10 +74,10 @@ Function was called by... test_profile.py:93(helper2)(8) 0.400 :0(setprofile) <- profile:0(testfunc())(1) 1.000 :1() <- :0(exec)(1) 1.000 -io.py:1211(flush) <- :0(exec)(2) 1.000 -io.py:269(flush) <- io.py:1211(flush)(1) 0.000 +io.py:1212(flush) <- :0(exec)(2) 1.000 +io.py:269(flush) <- io.py:1212(flush)(1) 0.000 io.py:656(closed) <- io.py:874(flush)(1) 0.000 -io.py:874(flush) <- io.py:1211(flush)(1) 0.000 +io.py:874(flush) <- io.py:1212(flush)(1) 0.000 profile:0(profiler) <- profile:0(testfunc()) <- profile:0(profiler)(1) 0.000 test_profile.py:103(subhelper) <- test_profile.py:93(helper2)(8) 0.400 diff --git a/PCbuild/Uninstal.wse b/PC/VS7.1/Uninstal.wse similarity index 100% rename from PCbuild/Uninstal.wse rename to PC/VS7.1/Uninstal.wse diff --git a/PC/VS7.1/_bsddb.vcproj b/PC/VS7.1/_bsddb.vcproj new file mode 100644 index 00000000000..85da3b352fb --- /dev/null +++ b/PC/VS7.1/_bsddb.vcproj @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_ctypes.vcproj b/PC/VS7.1/_ctypes.vcproj new file mode 100644 index 00000000000..748ee44f7f8 --- /dev/null +++ b/PC/VS7.1/_ctypes.vcproj @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_ctypes_test.vcproj b/PC/VS7.1/_ctypes_test.vcproj new file mode 100644 index 00000000000..a4bb7f1385a --- /dev/null +++ b/PC/VS7.1/_ctypes_test.vcproj @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_elementtree.vcproj b/PC/VS7.1/_elementtree.vcproj new file mode 100644 index 00000000000..587a35c1ac3 --- /dev/null +++ b/PC/VS7.1/_elementtree.vcproj @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_msi.vcproj b/PC/VS7.1/_msi.vcproj new file mode 100644 index 00000000000..be2a92cfad9 --- /dev/null +++ b/PC/VS7.1/_msi.vcproj @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_socket.vcproj b/PC/VS7.1/_socket.vcproj new file mode 100644 index 00000000000..26f77efbeef --- /dev/null +++ b/PC/VS7.1/_socket.vcproj @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_sqlite3.vcproj b/PC/VS7.1/_sqlite3.vcproj new file mode 100644 index 00000000000..aea39780607 --- /dev/null +++ b/PC/VS7.1/_sqlite3.vcproj @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/_ssl.mak b/PC/VS7.1/_ssl.mak similarity index 100% rename from PCbuild/_ssl.mak rename to PC/VS7.1/_ssl.mak diff --git a/PC/VS7.1/_ssl.vcproj b/PC/VS7.1/_ssl.vcproj new file mode 100644 index 00000000000..c1abd2486b2 --- /dev/null +++ b/PC/VS7.1/_ssl.vcproj @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_testcapi.vcproj b/PC/VS7.1/_testcapi.vcproj new file mode 100644 index 00000000000..a91d8ce16ea --- /dev/null +++ b/PC/VS7.1/_testcapi.vcproj @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/_tkinter.vcproj b/PC/VS7.1/_tkinter.vcproj new file mode 100644 index 00000000000..f14e7277984 --- /dev/null +++ b/PC/VS7.1/_tkinter.vcproj @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/amd64_ml64.bat b/PC/VS7.1/amd64_ml64.bat similarity index 100% rename from PCbuild/amd64_ml64.bat rename to PC/VS7.1/amd64_ml64.bat diff --git a/PCbuild9/build_ssl.bat b/PC/VS7.1/build_ssl.bat similarity index 55% rename from PCbuild9/build_ssl.bat rename to PC/VS7.1/build_ssl.bat index ba144463cbe..9aad44127ba 100644 --- a/PCbuild9/build_ssl.bat +++ b/PC/VS7.1/build_ssl.bat @@ -1,12 +1,12 @@ -@echo off -if not defined HOST_PYTHON ( - if %1 EQU Debug ( - set HOST_PYTHON=python_d.exe - if not exist python30_d.dll exit 1 - ) ELSE ( - set HOST_PYTHON=python.exe - if not exist python30.dll exit 1 - ) -) -%HOST_PYTHON% build_ssl.py %1 %2 %3 - +if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL + +@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + ) ELSE ( + set HOST_PYTHON=python.exe + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 + diff --git a/PC/VS7.1/build_ssl.py b/PC/VS7.1/build_ssl.py new file mode 100644 index 00000000000..2e9f4e3bd06 --- /dev/null +++ b/PC/VS7.1/build_ssl.py @@ -0,0 +1,181 @@ +# Script for building the _ssl and _hashlib modules for Windows. +# Uses Perl to setup the OpenSSL environment correctly +# and build OpenSSL, then invokes a simple nmake session +# for the actual _ssl.pyd and _hashlib.pyd DLLs. + +# THEORETICALLY, you can: +# * Unpack the latest SSL release one level above your main Python source +# directory. It is likely you will already find the zlib library and +# any other external packages there. +# * Install ActivePerl and ensure it is somewhere on your path. +# * Run this script from the PCBuild directory. +# +# it should configure and build SSL, then build the _ssl and _hashlib +# Python extensions without intervention. + +import os, sys, re + +# Find all "foo.exe" files on the PATH. +def find_all_on_path(filename, extras = None): + entries = os.environ["PATH"].split(os.pathsep) + ret = [] + for p in entries: + fname = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(fname) and fname not in ret: + ret.append(fname) + if extras: + for p in extras: + fname = os.path.abspath(os.path.join(p, filename)) + if os.path.isfile(fname) and fname not in ret: + ret.append(fname) + return ret + +# Find a suitable Perl installation for OpenSSL. +# cygwin perl does *not* work. ActivePerl does. +# Being a Perl dummy, the simplest way I can check is if the "Win32" package +# is available. +def find_working_perl(perls): + for perl in perls: + fh = os.popen(perl + ' -e "use Win32;"') + fh.read() + rc = fh.close() + if rc: + continue + return perl + print "Can not find a suitable PERL:" + if perls: + print " the following perl interpreters were found:" + for p in perls: + print " ", p + print " None of these versions appear suitable for building OpenSSL" + else: + print " NO perl interpreters were found on this machine at all!" + print " Please install ActivePerl and ensure it appears on your path" + print "The Python SSL module was not built" + return None + +# Locate the best SSL directory given a few roots to look into. +def find_best_ssl_dir(sources): + candidates = [] + for s in sources: + try: + # note: do not abspath s; the build will fail if any + # higher up directory name has spaces in it. + fnames = os.listdir(s) + except os.error: + fnames = [] + for fname in fnames: + fqn = os.path.join(s, fname) + if os.path.isdir(fqn) and fname.startswith("openssl-"): + candidates.append(fqn) + # Now we have all the candidates, locate the best. + best_parts = [] + best_name = None + for c in candidates: + parts = re.split("[.-]", os.path.basename(c))[1:] + # eg - openssl-0.9.7-beta1 - ignore all "beta" or any other qualifiers + if len(parts) >= 4: + continue + if parts > best_parts: + best_parts = parts + best_name = c + if best_name is not None: + print "Found an SSL directory at '%s'" % (best_name,) + else: + print "Could not find an SSL directory in '%s'" % (sources,) + sys.stdout.flush() + return best_name + +def run_configure(configure, do_script): + os.system("perl Configure "+configure) + os.system(do_script) + +def main(): + build_all = "-a" in sys.argv + if sys.argv[1] == "Release": + arch = "x86" + debug = False + configure = "VC-WIN32" + do_script = "ms\\do_masm" + makefile = "ms\\nt.mak" + elif sys.argv[1] == "Debug": + arch = "x86" + debug = True + configure = "VC-WIN32" + do_script = "ms\\do_masm" + makefile="ms\\d32.mak" + elif sys.argv[1] == "ReleaseItanium": + arch = "ia64" + debug = False + configure = "VC-WIN64I" + do_script = "ms\\do_win64i" + makefile = "ms\\nt.mak" + os.environ["VSEXTCOMP_USECL"] = "MS_ITANIUM" + elif sys.argv[1] == "ReleaseAMD64": + arch="amd64" + debug=False + configure = "VC-WIN64A" + do_script = "ms\\do_win64a" + makefile = "ms\\nt.mak" + os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON" + make_flags = "" + if build_all: + make_flags = "-a" + # perl should be on the path, but we also look in "\perl" and "c:\\perl" + # as "well known" locations + perls = find_all_on_path("perl.exe", ["\\perl\\bin", "C:\\perl\\bin"]) + perl = find_working_perl(perls) + if perl is None: + sys.exit(1) + + print "Found a working perl at '%s'" % (perl,) + sys.stdout.flush() + # Look for SSL 2 levels up from pcbuild - ie, same place zlib etc all live. + ssl_dir = find_best_ssl_dir(("..\\..\\..",)) + if ssl_dir is None: + sys.exit(1) + + old_cd = os.getcwd() + try: + os.chdir(ssl_dir) + # If the ssl makefiles do not exist, we invoke Perl to generate them. + # Due to a bug in this script, the makefile sometimes ended up empty + # Force a regeneration if it is. + if not os.path.isfile(makefile) or os.path.getsize(makefile)==0: + print "Creating the makefiles..." + sys.stdout.flush() + # Put our working Perl at the front of our path + os.environ["PATH"] = os.path.dirname(perl) + \ + os.pathsep + \ + os.environ["PATH"] + run_configure(configure, do_script) + if arch=="x86" and debug: + # the do_masm script in openssl doesn't generate a debug + # build makefile so we generate it here: + os.system("perl util\mk1mf.pl debug "+configure+" >"+makefile) + + # Now run make. + makeCommand = "nmake /nologo PERL=\"%s\" -f \"%s\"" %(perl, makefile) + print "Executing ssl makefiles:", makeCommand + sys.stdout.flush() + rc = os.system(makeCommand) + if rc: + print "Executing "+makefile+" failed" + print rc + sys.exit(rc) + finally: + os.chdir(old_cd) + # And finally, we can build the _ssl module itself for Python. + defs = "SSL_DIR=\"%s\"" % (ssl_dir,) + if debug: + defs = defs + " " + "DEBUG=1" + if arch in ('amd64', 'ia64'): + defs = defs + " EXTRA_CFLAGS=/GS- EXTRA_LIBS=bufferoverflowU.lib" + makeCommand = 'nmake /nologo -f _ssl.mak ' + defs + " " + make_flags + print "Executing:", makeCommand + sys.stdout.flush() + rc = os.system(makeCommand) + sys.exit(rc) + +if __name__=='__main__': + main() diff --git a/PC/VS7.1/bz2.vcproj b/PC/VS7.1/bz2.vcproj new file mode 100644 index 00000000000..d86d325b43e --- /dev/null +++ b/PC/VS7.1/bz2.vcproj @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/db.build b/PC/VS7.1/db.build similarity index 100% rename from PCbuild/db.build rename to PC/VS7.1/db.build diff --git a/PCbuild9/field3.py b/PC/VS7.1/field3.py similarity index 67% rename from PCbuild9/field3.py rename to PC/VS7.1/field3.py index edcbe36ae08..47f24ca3cb4 100644 --- a/PCbuild9/field3.py +++ b/PC/VS7.1/field3.py @@ -22,14 +22,14 @@ levelnum = {'alpha': 0xA, }[level] string = sys.version.split()[0] # like '2.3a0' -print(" * For %s," % string) -print(" * PY_MICRO_VERSION = %d" % micro) -print(" * PY_RELEASE_LEVEL = %r = %s" % (level, hex(levelnum))) -print(" * PY_RELEASE_SERIAL = %d" % serial) -print(" *") +print " * For %s," % string +print " * PY_MICRO_VERSION = %d" % micro +print " * PY_RELEASE_LEVEL = %r = %s" % (level, hex(levelnum)) +print " * PY_RELEASE_SERIAL = %d" % serial +print " *" field3 = micro * 1000 + levelnum * 10 + serial -print(" * and %d*1000 + %d*10 + %d = %d" % (micro, levelnum, serial, field3)) -print(" */") -print("#define FIELD3", field3) +print " * and %d*1000 + %d*10 + %d = %d" % (micro, levelnum, serial, field3) +print " */" +print "#define FIELD3", field3 diff --git a/PCbuild9/installer.bmp b/PC/VS7.1/installer.bmp similarity index 100% rename from PCbuild9/installer.bmp rename to PC/VS7.1/installer.bmp diff --git a/PCbuild9/make_buildinfo.c b/PC/VS7.1/make_buildinfo.c similarity index 77% rename from PCbuild9/make_buildinfo.c rename to PC/VS7.1/make_buildinfo.c index 22b9882477a..4cebf45ccd8 100644 --- a/PCbuild9/make_buildinfo.c +++ b/PC/VS7.1/make_buildinfo.c @@ -3,8 +3,6 @@ #include #include -#define CMD_SIZE 500 - /* This file creates the getbuildinfo.o object, by first invoking subwcrev.exe (if found), and then invoking cl.exe. As a side effect, it might generate PCBuild\getbuildinfo2.c @@ -25,7 +23,7 @@ int make_buildinfo2() { struct _stat st; HKEY hTortoise; - char command[CMD_SIZE+1]; + char command[500]; DWORD type, size; if (_stat(".svn", &st) < 0) return 0; @@ -42,11 +40,11 @@ int make_buildinfo2() type != REG_SZ) /* Registry corrupted */ return 0; - strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe"); + strcat(command, "bin\\subwcrev.exe"); if (_stat(command+1, &st) < 0) /* subwcrev.exe not part of the release */ return 0; - strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); + strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); puts(command); fflush(stdout); if (system(command) < 0) return 0; @@ -62,17 +60,17 @@ int main(int argc, char*argv[]) return EXIT_FAILURE; } if (strcmp(argv[1], "Release") == 0) { - strcat_s(command, CMD_SIZE, "-MD "); + strcat(command, "-MD "); } else if (strcmp(argv[1], "Debug") == 0) { - strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd "); + strcat(command, "-D_DEBUG -MDd "); } else if (strcmp(argv[1], "ReleaseItanium") == 0) { - strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM "); + strcat(command, "-MD /USECL:MS_ITANIUM "); } else if (strcmp(argv[1], "ReleaseAMD64") == 0) { - strcat_s(command, CMD_SIZE, "-MD "); - strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON "); + strcat(command, "-MD "); + strcat(command, "-MD /USECL:MS_OPTERON "); } else { fprintf(stderr, "unsupported configuration %s\n", argv[1]); @@ -80,14 +78,14 @@ int main(int argc, char*argv[]) } if ((do_unlink = make_buildinfo2())) - strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV "); + strcat(command, "getbuildinfo2.c -DSUBWCREV "); else - strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c"); - strcat_s(command, CMD_SIZE, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); + strcat(command, "..\\Modules\\getbuildinfo.c"); + strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); puts(command); fflush(stdout); result = system(command); if (do_unlink) - _unlink("getbuildinfo2.c"); + unlink("getbuildinfo2.c"); if (result < 0) return EXIT_FAILURE; return 0; diff --git a/PC/VS7.1/make_buildinfo.vcproj b/PC/VS7.1/make_buildinfo.vcproj new file mode 100644 index 00000000000..c49f0fd82f1 --- /dev/null +++ b/PC/VS7.1/make_buildinfo.vcproj @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/make_versioninfo.vcproj b/PC/VS7.1/make_versioninfo.vcproj new file mode 100644 index 00000000000..7bdaaccc31c --- /dev/null +++ b/PC/VS7.1/make_versioninfo.vcproj @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/pcbuild.sln b/PC/VS7.1/pcbuild.sln new file mode 100644 index 00000000000..e44a39eefdf --- /dev/null +++ b/PC/VS7.1/pcbuild.sln @@ -0,0 +1,288 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{E1DBB220-D64B-423D-A545-539A55AA7FE2}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{59CBF474-9E06-4C50-9142-C44A118BB447}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{AC557788-6354-43F7-BE05-C9C8C59A344A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" + ProjectSection(ProjectDependencies) = postProject + {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} + {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{51F35FAE-FB92-4B2C-9187-1542C065AD77}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{F22F40F4-D318-40DC-96B3-88DC81CE0894}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{8CF334D9-4F82-42EB-97AF-83592C5AFD2F}" + ProjectSection(ProjectDependencies) = postProject + {F22F40F4-D318-40DC-96B3-88DC81CE0894} = {F22F40F4-D318-40DC-96B3-88DC81CE0894} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{2FF0A312-22F9-4C34-B070-842916DE27A9}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + ReleaseAMD64 = ReleaseAMD64 + ReleaseItanium = ReleaseItanium + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.ActiveCfg = Debug|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.Build.0 = Debug|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.ActiveCfg = Release|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.Build.0 = Release|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.ActiveCfg = Debug|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.Build.0 = Debug|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.ActiveCfg = Release|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.Build.0 = Release|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.ActiveCfg = Debug|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.Build.0 = Debug|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.ActiveCfg = Release|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.Build.0 = Release|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.ActiveCfg = Debug|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.Build.0 = Debug|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.ActiveCfg = Release|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.Build.0 = Release|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.ActiveCfg = Debug|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.Build.0 = Debug|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.ActiveCfg = Release|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.Build.0 = Release|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.ActiveCfg = Debug|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.Build.0 = Debug|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.ActiveCfg = Release|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.Build.0 = Release|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.Build.0 = Release|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.ActiveCfg = Debug|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.Build.0 = Debug|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.ActiveCfg = Release|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.Build.0 = Release|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.ActiveCfg = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.Build.0 = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.ActiveCfg = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.ActiveCfg = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.Build.0 = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.ActiveCfg = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.ActiveCfg = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.Build.0 = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.ActiveCfg = Debug|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.Build.0 = Debug|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.ActiveCfg = Release|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.Build.0 = Release|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.ActiveCfg = Debug|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.Build.0 = Debug|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.ActiveCfg = Release|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.Build.0 = Release|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.ActiveCfg = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.Build.0 = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.Build.0 = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseAMD64.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseItanium.ActiveCfg = Release|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.ActiveCfg = Debug|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.Build.0 = Debug|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.ActiveCfg = Release|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.Build.0 = Release|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.ActiveCfg = Debug|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.Build.0 = Debug|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.ActiveCfg = Release|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.Build.0 = Release|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.ActiveCfg = Debug|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.Build.0 = Debug|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.Build.0 = Release|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.ActiveCfg = Debug|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.Build.0 = Debug|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.ActiveCfg = Release|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.Build.0 = Release|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.ActiveCfg = Debug|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.Build.0 = Debug|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.ActiveCfg = Release|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.Build.0 = Release|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.ActiveCfg = Debug|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.Build.0 = Debug|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.ActiveCfg = Release|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.Build.0 = Release|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.ActiveCfg = Debug|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.Build.0 = Debug|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.ActiveCfg = Release|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.Build.0 = Release|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 + {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 + EndGlobalSection + GlobalSection(SolutionItems) = postSolution + ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c + readme.txt = readme.txt + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/PC/VS7.1/pyexpat.vcproj b/PC/VS7.1/pyexpat.vcproj new file mode 100644 index 00000000000..1c5b3ad306c --- /dev/null +++ b/PC/VS7.1/pyexpat.vcproj @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/python.build b/PC/VS7.1/python.build similarity index 100% rename from PCbuild/python.build rename to PC/VS7.1/python.build diff --git a/PCbuild/python.iss b/PC/VS7.1/python.iss similarity index 96% rename from PCbuild/python.iss rename to PC/VS7.1/python.iss index 480b8c1d740..40365be56ff 100644 --- a/PCbuild/python.iss +++ b/PC/VS7.1/python.iss @@ -171,11 +171,14 @@ Source: DLLs\expat.dll; DestDir: {app}\DLLs; CopyMode: alwaysoverwrite; Componen Source: Lib\*.py; DestDir: {app}\Lib; CopyMode: alwaysoverwrite; Components: main +Source: Lib\compiler\*.*; DestDir: {app}\Lib\compiler; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs Source: Lib\distutils\*.*; DestDir: {app}\Lib\distutils; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs Source: Lib\email\*.*; DestDir: {app}\Lib\email; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs Source: Lib\encodings\*.*; DestDir: {app}\Lib\encodings; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\hotshot\*.*; DestDir: {app}\Lib\hotshot; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs Source: Lib\lib-old\*.*; DestDir: {app}\Lib\lib-old; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs Source: Lib\xml\*.*; DestDir: {app}\Lib\xml; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs +Source: Lib\hotshot\*.*; DestDir: {app}\Lib\hotshot; CopyMode: alwaysoverwrite; Components: main; Flags: recursesubdirs Source: Lib\test\*.*; DestDir: {app}\Lib\test; CopyMode: alwaysoverwrite; Components: test; Flags: recursesubdirs Source: Lib\site-packages\README.txt; DestDir: {app}\Lib\site-packages; CopyMode: alwaysoverwrite; Components: main @@ -267,6 +270,9 @@ end. [UninstallDelete] +Name: {app}\Lib\compiler\*.pyc; Type: files +Name: {app}\Lib\compiler\*.pyo; Type: files +Name: {app}\Lib\compiler; Type: dirifempty Name: {app}\Lib\distutils\command\*.pyc; Type: files Name: {app}\Lib\distutils\command\*.pyo; Type: files Name: {app}\Lib\distutils\command; Type: dirifempty @@ -282,6 +288,9 @@ Name: {app}\Lib\email; Type: dirifempty Name: {app}\Lib\encodings\*.pyc; Type: files Name: {app}\Lib\encodings\*.pyo; Type: files Name: {app}\Lib\encodings; Type: dirifempty +Name: {app}\Lib\hotshot\*.pyc; Type: files +Name: {app}\Lib\hotshot\*.pyo; Type: files +Name: {app}\Lib\hotshot; Type: dirifempty Name: {app}\Lib\lib-old\*.pyc; Type: files Name: {app}\Lib\lib-old\*.pyo; Type: files Name: {app}\Lib\lib-old; Type: dirifempty diff --git a/PC/VS7.1/python.vcproj b/PC/VS7.1/python.vcproj new file mode 100644 index 00000000000..8412e810de4 --- /dev/null +++ b/PC/VS7.1/python.vcproj @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/python20.wse b/PC/VS7.1/python20.wse similarity index 99% rename from PCbuild/python20.wse rename to PC/VS7.1/python20.wse index da2df69b211..fa11af4b3ed 100644 --- a/PCbuild/python20.wse +++ b/PC/VS7.1/python20.wse @@ -2023,6 +2023,14 @@ item: Install File end item: Remark end +item: Install File + Source=..\lib\hotshot\*.py + Destination=%MAINDIR%\Lib\hotshot + Description=Fast Python profiler + Flags=0000000000000010 +end +item: Remark +end item: Install File Source=..\lib\lib-old\*.py Destination=%MAINDIR%\Lib\lib-old diff --git a/PC/VS7.1/pythoncore.vcproj b/PC/VS7.1/pythoncore.vcproj new file mode 100644 index 00000000000..ab0c3f54fe1 --- /dev/null +++ b/PC/VS7.1/pythoncore.vcproj @@ -0,0 +1,806 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/pythonw.vcproj b/PC/VS7.1/pythonw.vcproj new file mode 100644 index 00000000000..d00142fa1cb --- /dev/null +++ b/PC/VS7.1/pythonw.vcproj @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/readme.txt b/PC/VS7.1/readme.txt new file mode 100644 index 00000000000..d028727e381 --- /dev/null +++ b/PC/VS7.1/readme.txt @@ -0,0 +1,426 @@ +Building Python using VC++ 7.1 +------------------------------------- +This directory is used to build Python for Win32 platforms, e.g. Windows +95, 98 and NT. It requires Microsoft Visual C++ 7.1 +(a.k.a. Visual Studio .NET 2003). +(For other Windows platforms and compilers, see ../PC/readme.txt.) + +All you need to do is open the workspace "pcbuild.sln" in MSVC++, select +the Debug or Release setting (using "Solution Configuration" from +the "Standard" toolbar"), and build the projects. + +The proper order to build subprojects: + +1) pythoncore (this builds the main Python DLL and library files, + python26.{dll, lib} in Release mode) + NOTE: in previous releases, this subproject was + named after the release number, e.g. python20. + +2) python (this builds the main Python executable, + python.exe in Release mode) + +3) the other subprojects, as desired or needed (note: you probably don't + want to build most of the other subprojects, unless you're building an + entire Python distribution from scratch, or specifically making changes + to the subsystems they implement, or are running a Python core buildbot + test slave; see SUBPROJECTS below) + +When using the Debug setting, the output files have a _d added to +their name: python26_d.dll, python_d.exe, parser_d.pyd, and so on. + +SUBPROJECTS +----------- +These subprojects should build out of the box. Subprojects other than the +main ones (pythoncore, python, pythonw) generally build a DLL (renamed to +.pyd) from a specific module so that users don't have to load the code +supporting that module unless they import the module. + +pythoncore + .dll and .lib +python + .exe +pythonw + pythonw.exe, a variant of python.exe that doesn't pop up a DOS box +_socket + socketmodule.c +_testcapi + tests of the Python C API, run via Lib/test/test_capi.py, and + implemented by module Modules/_testcapimodule.c +pyexpat + Python wrapper for accelerated XML parsing, which incorporates stable + code from the Expat project: http://sourceforge.net/projects/expat/ +select + selectmodule.c +unicodedata + large tables of Unicode data +winsound + play sounds (typically .wav files) under Windows + +The following subprojects will generally NOT build out of the box. They +wrap code Python doesn't control, and you'll need to download the base +packages first and unpack them into siblings of PCbuilds's parent +directory; for example, if your PCbuild is .......\dist\src\PCbuild\, +unpack into new subdirectories of dist\. + +_tkinter + Python wrapper for the Tk windowing system. Requires building + Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.12. + + Get source + ---------- + In the dist directory, run + svn export http://svn.python.org/projects/external/tcl8.4.12 + svn export http://svn.python.org/projects/external/tk8.4.12 + svn export http://svn.python.org/projects/external/tix-8.4.0 + + Build Tcl first (done here w/ MSVC 7.1 on Windows XP) + --------------- + Use "Start -> All Programs -> Microsoft Visual Studio .NET 2003 + -> Visual Studio .NET Tools -> Visual Studio .NET 2003 Command Prompt" + to get a shell window with the correct environment settings + cd dist\tcl8.4.12\win + nmake -f makefile.vc + nmake -f makefile.vc INSTALLDIR=..\..\tcltk install + + XXX Should we compile with OPTS=threads? + + Optional: run tests, via + nmake -f makefile.vc test + + On WinXP Pro, wholly up to date as of 30-Aug-2004: + all.tcl: Total 10678 Passed 9969 Skipped 709 Failed 0 + Sourced 129 Test Files. + + Build Tk + -------- + cd dist\tk8.4.12\win + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install + + XXX Should we compile with OPTS=threads? + + XXX Our installer copies a lot of stuff out of the Tcl/Tk install + XXX directory. Is all of that really needed for Python use of Tcl/Tk? + + Optional: run tests, via + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 test + + On WinXP Pro, wholly up to date as of 30-Aug-2004: + all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13 + Sourced 91 Test Files. + Files with failing tests: canvImg.test scrollbar.test textWind.test winWm.test + + Built Tix + --------- + cd dist\tix-8.4.0\win + nmake -f python.mak + nmake -f python.mak install + +bz2 + Python wrapper for the libbz2 compression library. Homepage + http://sources.redhat.com/bzip2/ + Download the source from the python.org copy into the dist + directory: + + svn export http://svn.python.org/projects/external/bzip2-1.0.3 + + A custom pre-link step in the bz2 project settings should manage to + build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is + linked in PCbuild\. + However, the bz2 project is not smart enough to remove anything under + bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib + you need to clean up bzip2-1.0.3\ by hand. + + The build step shouldn't yield any warnings or errors, and should end + by displaying 6 blocks each terminated with + FC: no differences encountered + + All of this managed to build bzip2-1.0.3\libbz2.lib, which the Python + project links in. + + +_bsddb + To use the version of bsddb that Python is built with by default, invoke + (in the dist directory) + + svn export http://svn.python.org/projects/external/db-4.4.20 + + + Then open a VS.NET 2003 shell, and invoke: + + devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Release /project db_static + + and do that a second time for a Debug build too: + + devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static + + Alternatively, if you want to start with the original sources, + go to Sleepycat's download page: + http://www.sleepycat.com/downloads/releasehistorybdb.html + + and download version 4.4.20. + + With or without strong cryptography? You can choose either with or + without strong cryptography, as per the instructions below. By + default, Python is built and distributed WITHOUT strong crypto. + + Unpack the sources; if you downloaded the non-crypto version, rename + the directory from db-4.4.20.NC to db-4.4.20. + + Now apply any patches that apply to your version. + + Open + dist\db-4.4.20\docs\index.html + + and follow the "Windows->Building Berkeley DB with Visual C++ .NET" + instructions for building the Sleepycat + software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory. + Build the "db_static" project, for "Release" mode. + + To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py + is then enabled. Running in verbose mode may be helpful. + + XXX The test_bsddb3 tests don't always pass, on Windows (according to + XXX me) or on Linux (according to Barry). (I had much better luck + XXX on Win2K than on Win98SE.) The common failure mode across platforms + XXX is + XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable + XXX to join the environment') + XXX + XXX and it appears timing-dependent. On Win2K I also saw this once: + XXX + XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ... + XXX Exception in thread reader 1: + XXX Traceback (most recent call last): + XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap + XXX self.run() + XXX File "C:\Code\python\lib\threading.py", line 399, in run + XXX apply(self.__target, self.__args, self.__kwargs) + XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in + XXX readerThread + XXX rec = c.next() + XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed + XXX to resolve a deadlock') + XXX + XXX I'm told that DBLockDeadlockError is expected at times. It + XXX doesn't cause a test to fail when it happens (exceptions in + XXX threads are invisible to unittest). + + Building for Win64: + - open a VS.NET 2003 command prompt + - run the SDK setenv.cmd script, passing /RETAIL and the target + architecture (/SRV64 for Itanium, /X64 for AMD64) + - build BerkeleyDB with the solution configuration matching the + target ("Release IA64" for Itanium, "Release AMD64" for AMD64), e.g. + devenv db-4.4.20\build_win32\Berkeley_DB.sln /build "Release AMD64" /project db_static /useenv + +_sqlite3 + Python wrapper for SQLite library. + + Get the source code through + + svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 + + To use the extension module in a Python build tree, copy sqlite3.dll into + the PCbuild folder. + +_ssl + Python wrapper for the secure sockets library. + + Get the source code through + + svn export http://svn.python.org/projects/external/openssl-0.9.8a + + Alternatively, get the latest version from http://www.openssl.org. + You can (theoretically) use any version of OpenSSL you like - the + build process will automatically select the latest version. + + You must also install ActivePerl from + http://www.activestate.com/Products/ActivePerl/ + as this is used by the OpenSSL build process. Complain to them . + + The MSVC project simply invokes PCBuild/build_ssl.py to perform + the build. This Python script locates and builds your OpenSSL + installation, then invokes a simple makefile to build the final .pyd. + + build_ssl.py attempts to catch the most common errors (such as not + being able to find OpenSSL sources, or not being able to find a Perl + that works with OpenSSL) and give a reasonable error message. + If you have a problem that doesn't seem to be handled correctly + (eg, you know you have ActivePerl but we can't find it), please take + a peek at build_ssl.py and suggest patches. Note that build_ssl.py + should be able to be run directly from the command-line. + + build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do + this by hand. + +Building for Itanium +-------------------- + +The project files support a ReleaseItanium configuration which creates +Win64/Itanium binaries. For this to work, you need to install the Platform +SDK, in particular the 64-bit support. This includes an Itanium compiler +(future releases of the SDK likely include an AMD64 compiler as well). +In addition, you need the Visual Studio plugin for external C compilers, +from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to +locate the proper target compiler, and convert compiler options +accordingly. The project files require atleast version 0.9. + +Building for AMD64 +------------------ + +The build process for the ReleaseAMD64 configuration is very similar +to the Itanium configuration; make sure you use the latest version of +vsextcomp. + +Building Python Using the free MS Toolkit Compiler +-------------------------------------------------- + +The build process for Visual C++ can be used almost unchanged with the free MS +Toolkit Compiler. This provides a way of building Python using freely +available software. + +Note that Microsoft have withdrawn the free MS Toolkit Compiler, so this can +no longer be considered a supported option. The instructions are still +correct, but you need to already have a copy of the compiler in order to use +them. Microsoft now supply Visual C++ 2005 Express Edition for free, but this +is NOT compatible with Visual C++ 7.1 (it uses a different C runtime), and so +cannot be used to build a version of Python compatible with the standard +python.org build. If you are interested in using Visual C++ 2005 Express +Edition, however, you should look at the PCBuild8 directory. + +Requirements + + To build Python, the following tools are required: + + * The Visual C++ Toolkit Compiler + no longer available for download - see above + * A recent Platform SDK + from http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a + * The .NET 1.1 SDK + from http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d + + [Does anyone have better URLs for the last 2 of these?] + + The toolkit compiler is needed as it is an optimising compiler (the + compiler supplied with the .NET SDK is a non-optimising version). The + platform SDK is needed to provide the Windows header files and libraries + (the Windows 2003 Server SP1 edition, typical install, is known to work - + other configurations or versions are probably fine as well). The .NET 1.1 + SDK is needed because it contains a version of msvcrt.dll which links to + the msvcr71.dll CRT. Note that the .NET 2.0 SDK is NOT acceptable, as it + references msvcr80.dll. + + All of the above items should be installed as normal. + + If you intend to build the openssl (needed for the _ssl extension) you + will need the C runtime sources installed as part of the platform SDK. + + In addition, you will need Nant, available from + http://nant.sourceforge.net. The 0.85 release candidate 3 version is known + to work. This is the latest released version at the time of writing. Later + "nightly build" versions are known NOT to work - it is not clear at + present whether future released versions will work. + +Setting up the environment + + Start a platform SDK "build environment window" from the start menu. The + "Windows XP 32-bit retail" version is known to work. + + Add the following directories to your PATH: + * The toolkit compiler directory + * The SDK "Win64" binaries directory + * The Nant directory + Add to your INCLUDE environment variable: + * The toolkit compiler INCLUDE directory + Add to your LIB environment variable: + * The toolkit compiler LIB directory + * The .NET SDK Visual Studio 2003 VC7\lib directory + + The following commands should set things up as you need them: + + rem Set these values according to where you installed the software + set TOOLKIT=C:\Program Files\Microsoft Visual C++ Toolkit 2003 + set SDK=C:\Program Files\Microsoft Platform SDK + set NET=C:\Program Files\Microsoft Visual Studio .NET 2003 + set NANT=C:\Utils\Nant + + set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\win64;%NANT%\bin + set INCLUDE=%TOOLKIT%\include;%INCLUDE% + set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%LIB% + + The "win64" directory from the SDK is added to supply executables such as + "cvtres" and "lib", which are not available elsewhere. The versions in the + "win64" directory are 32-bit programs, so they are fine to use here. + + That's it. To build Python (the core only, no binary extensions which + depend on external libraries) you just need to issue the command + + nant -buildfile:python.build all + + from within the PCBuild directory. + +Extension modules + + To build those extension modules which require external libraries + (_tkinter, bz2, _bsddb, _sqlite3, _ssl) you can follow the instructions + for the Visual Studio build above, with a few minor modifications. These + instructions have only been tested using the sources in the Python + subversion repository - building from original sources should work, but + has not been tested. + + For each extension module you wish to build, you should remove the + associated include line from the excludeprojects section of pc.build. + + The changes required are: + + _tkinter + The tix makefile (tix-8.4.0\win\makefile.vc) must be modified to + remove references to TOOLS32. The relevant lines should be changed to + read: + cc32 = cl.exe + link32 = link.exe + include32 = + The remainder of the build instructions will work as given. + + bz2 + No changes are needed + + _bsddb + The file db.build should be copied from the Python PCBuild directory + to the directory db-4.4.20\build_win32. + + The file db_static.vcproj in db-4.4.20\build_win32 should be edited to + remove the string "$(SolutionDir)" - this occurs in 2 places, only + relevant for 64-bit builds. (The edit is required as otherwise, nant + wants to read the solution file, which is not in a suitable form). + + The bsddb library can then be build with the command + nant -buildfile:db.build all + run from the db-4.4.20\build_win32 directory. + + _sqlite3 + No changes are needed. However, in order for the tests to succeed, a + copy of sqlite3.dll must be downloaded, and placed alongside + python.exe. + + _ssl + The documented build process works as written. However, it needs a + copy of the file setargv.obj, which is not supplied in the platform + SDK. However, the sources are available (in the crt source code). To + build setargv.obj, proceed as follows: + + Copy setargv.c, cruntime.h and internal.h from %SDK%\src\crt to a + temporary directory. + Compile using "cl /c /I. /MD /D_CRTBLD setargv.c" + Copy the resulting setargv.obj to somewhere on your LIB environment + (%SDK%\lib is a reasonable place). + + With setargv.obj in place, the standard build process should work + fine. + +YOUR OWN EXTENSION DLLs +----------------------- +If you want to create your own extension module DLL, there's an example +with easy-to-follow instructions in ../PC/example/; read the file +readme.txt there first. diff --git a/PCbuild9/rmpyc.py b/PC/VS7.1/rmpyc.py similarity index 91% rename from PCbuild9/rmpyc.py rename to PC/VS7.1/rmpyc.py index a1e75bb7ae5..43c8576e798 100644 --- a/PCbuild9/rmpyc.py +++ b/PC/VS7.1/rmpyc.py @@ -22,4 +22,4 @@ def deltree(root): return npyc, npyo npyc, npyo = deltree("../Lib") -print(npyc, ".pyc deleted,", npyo, ".pyo deleted") +print npyc, ".pyc deleted,", npyo, ".pyo deleted" diff --git a/PCbuild9/rt.bat b/PC/VS7.1/rt.bat old mode 100644 new mode 100755 similarity index 84% rename from PCbuild9/rt.bat rename to PC/VS7.1/rt.bat index 8e386c58566..29801d29269 --- a/PCbuild9/rt.bat +++ b/PC/VS7.1/rt.bat @@ -10,11 +10,11 @@ rem All leading instances of these switches are shifted off, and rem whatever remains is passed to regrtest.py. For example, rem rt -O -d -x test_thread rem runs -rem python_d -O ../lib/test/regrtest.py -x test_thread +rem python_d -O ../../lib/test/regrtest.py -x test_thread rem twice, and rem rt -q -g test_binascii rem runs -rem python_d ../lib/test/regrtest.py -g test_binascii +rem python_d ../../lib/test/regrtest.py -g test_binascii rem to generate the expected-output file for binascii quickly. rem rem Confusing: if you want to pass a comma-separated list, like @@ -27,14 +27,14 @@ setlocal set exe=python set qmode= set dashO= -PATH %PATH%;..\..\tcltk\bin +PATH %PATH%;..\..\..\tcltk\bin :CheckOpts if "%1"=="-O" (set dashO=-O) & shift & goto CheckOpts if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts -set cmd=%exe% %dashO% -E -tt ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 +set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 if defined qmode goto Qmode echo Deleting .pyc/.pyo files ... diff --git a/PC/VS7.1/select.vcproj b/PC/VS7.1/select.vcproj new file mode 100644 index 00000000000..615cc0f2207 --- /dev/null +++ b/PC/VS7.1/select.vcproj @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/unicodedata.vcproj b/PC/VS7.1/unicodedata.vcproj new file mode 100644 index 00000000000..cc23da17641 --- /dev/null +++ b/PC/VS7.1/unicodedata.vcproj @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/w9xpopen.vcproj b/PC/VS7.1/w9xpopen.vcproj new file mode 100644 index 00000000000..9015500dda6 --- /dev/null +++ b/PC/VS7.1/w9xpopen.vcproj @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PC/VS7.1/winsound.vcproj b/PC/VS7.1/winsound.vcproj new file mode 100644 index 00000000000..6736ad7958c --- /dev/null +++ b/PC/VS7.1/winsound.vcproj @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/_bsddb.vcproj b/PCbuild/_bsddb.vcproj index 85da3b352fb..205a1788d80 100644 --- a/PCbuild/_bsddb.vcproj +++ b/PCbuild/_bsddb.vcproj @@ -1,257 +1,552 @@ + ProjectGUID="{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" + RootNamespace="_bsddb" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories="$(bsddbDir)" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(bsddbDir)" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(bsddbDir)" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(bsddbDir)" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + diff --git a/PCbuild/_ctypes.vcproj b/PCbuild/_ctypes.vcproj index 748ee44f7f8..f923ca0d5c3 100644 --- a/PCbuild/_ctypes.vcproj +++ b/PCbuild/_ctypes.vcproj @@ -1,310 +1,703 @@ + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories="..\Modules\_ctypes\libffi_msvc" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="..\Modules\_ctypes\libffi_msvc" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="..\Modules\_ctypes\libffi_msvc" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="..\Modules\_ctypes\libffi_msvc" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/_ctypes_test.vcproj b/PCbuild/_ctypes_test.vcproj index a4bb7f1385a..156c10c8453 100644 --- a/PCbuild/_ctypes_test.vcproj +++ b/PCbuild/_ctypes_test.vcproj @@ -1,241 +1,520 @@ + ProjectGUID="{9EC7190A-249F-4180-A900-548FDCF3055F}" + RootNamespace="_ctypes_test" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + diff --git a/PCbuild/_elementtree.vcproj b/PCbuild/_elementtree.vcproj index 587a35c1ac3..c22c252014c 100644 --- a/PCbuild/_elementtree.vcproj +++ b/PCbuild/_elementtree.vcproj @@ -1,263 +1,620 @@ + ProjectGUID="{17E1E049-C309-4D79-843F-AE483C264AEA}" + RootNamespace="_elementtree" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories="..\Modules\expat" + PreprocessorDefinitions="XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="..\Modules\expat" + PreprocessorDefinitions="XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="..\Modules\expat" + PreprocessorDefinitions="XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="..\Modules\expat" + PreprocessorDefinitions="XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;USE_PYEXPAT_CAPI;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/_msi.vcproj b/PCbuild/_msi.vcproj index be2a92cfad9..2d925996590 100644 --- a/PCbuild/_msi.vcproj +++ b/PCbuild/_msi.vcproj @@ -1,251 +1,528 @@ + ProjectGUID="{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" + RootNamespace="_msi" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + diff --git a/PCbuild/_socket.vcproj b/PCbuild/_socket.vcproj index 26f77efbeef..6ef540788ee 100644 --- a/PCbuild/_socket.vcproj +++ b/PCbuild/_socket.vcproj @@ -1,253 +1,536 @@ + ProjectGUID="{86937F53-C189-40EF-8CE8-8759D8E7D480}" + RootNamespace="_socket" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + diff --git a/PCbuild/_sqlite3.vcproj b/PCbuild/_sqlite3.vcproj index aea39780607..646c5453fc2 100644 --- a/PCbuild/_sqlite3.vcproj +++ b/PCbuild/_sqlite3.vcproj @@ -1,282 +1,636 @@ + ProjectGUID="{13CECB97-4119-4316-9D42-8534019A5A44}" + RootNamespace="_sqlite3" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories="$(sqlite3Dir)" + PreprocessorDefinitions="MODULE_NAME=\"sqlite3\"" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(sqlite3Dir)" + PreprocessorDefinitions="MODULE_NAME=\"sqlite3\"" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(sqlite3Dir)" + PreprocessorDefinitions="MODULE_NAME=\"sqlite3\"" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(sqlite3Dir)" + PreprocessorDefinitions="MODULE_NAME=\"sqlite3\"" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/_ssl.vcproj b/PCbuild/_ssl.vcproj index c1abd2486b2..ddd396ae5ca 100644 --- a/PCbuild/_ssl.vcproj +++ b/PCbuild/_ssl.vcproj @@ -1,83 +1,548 @@ + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + - - - + ConfigurationType="2" + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + Name="VCPreBuildEventTool" + CommandLine="cd "$(SolutionDir)" "$(PythonExe)" build_ssl.py Release $(PlatformName) -a" + /> + + + + + + + + + + + + + + + + + Name="Debug|x64" + ConfigurationType="2" + InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" + CharacterSet="0" + > + Name="VCPreBuildEventTool" + CommandLine="cd "$(SolutionDir)" "$(PythonExe)" build_ssl.py Release $(PlatformName) -a" + /> + + + + + + + + + + + + + + + + + Name="Release|Win32" + ConfigurationType="2" + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + Name="VCPreBuildEventTool" + CommandLine="cd "$(SolutionDir)" "$(PythonExe)" build_ssl.py Release $(PlatformName) -a" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + diff --git a/PCbuild/_testcapi.vcproj b/PCbuild/_testcapi.vcproj index a91d8ce16ea..8ef456a58db 100644 --- a/PCbuild/_testcapi.vcproj +++ b/PCbuild/_testcapi.vcproj @@ -1,246 +1,520 @@ + ProjectGUID="{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" + RootNamespace="_testcapi" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + - - - - - - - - - - - - - - - + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + diff --git a/PCbuild/_tkinter.vcproj b/PCbuild/_tkinter.vcproj index f14e7277984..e3baa5cee17 100644 --- a/PCbuild/_tkinter.vcproj +++ b/PCbuild/_tkinter.vcproj @@ -1,260 +1,540 @@ + ProjectGUID="{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" + RootNamespace="_tkinter" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + - - - - - - - - - - - - - - - + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories="$(tcltkDir)\include" + PreprocessorDefinitions="WITH_APPINIT" + /> + Name="VCManagedResourceCompilerTool" + /> + + + AdditionalDependencies="$(tcltkLib)" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories=""$(tcltk64Dir)\include"" + PreprocessorDefinitions="WITH_APPINIT" + /> + Name="VCManagedResourceCompilerTool" + /> + + + AdditionalDependencies="$(tcltk64Lib)" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(tcltkDir)\include" + PreprocessorDefinitions="WITH_APPINIT" + /> + Name="VCManagedResourceCompilerTool" + /> + + + AdditionalDependencies="$(tcltkLib)" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + diff --git a/PCbuild/bdist_wininst.vcproj b/PCbuild/bdist_wininst.vcproj new file mode 100644 index 00000000000..414f7edae50 --- /dev/null +++ b/PCbuild/bdist_wininst.vcproj @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/build.bat b/PCbuild/build.bat index 5eeb1235617..9bc818676fe 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -1,50 +1,17 @@ @echo off +rem A batch program to build or rebuild a particular configuration. +rem just for convenience. + setlocal +set platf=Win32 +set conf=Release +set build=/build -set target=end +:CheckOpts +if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts +if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts +if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts -if "%1"=="makeinfo" goto makeinfo -if "%1"=="clean" goto clean -if "%1"=="build" goto build -if "%1"=="setargv" goto setargv -if "%1"=="" goto build - -echo Usage: build.bat build -echo build.bat clean -echo build.bat setargv -goto end - -:clean -del *.pyd *.exe *.dll *.exp *.lib *.pdb *.o -rmdir /S /Q temp -rmdir /S /Q x86-temp-release -goto %target% - -:setargv -cl /c /I"%SDK%\src\crt" /MD /D_CRTBLD "%SDK%\src\crt\setargv.c" -if not exist setargv.obj echo An error occured & goto end -echo copy setargv.obj "%SDK%\Lib" -copy setargv.obj "%SDK%\Lib" -del setargv.obj -goto %target% - -:makeinfo -nant -buildfile:python.build all -lib /def: x86-temp-release\make_buildinfo\make_buildinfo.obj -lib /def: x86-temp-release\make_versioninfo\make_versioninfo.obj -goto %target% - -:build -if not exist make_buildinfo.lib set target=realbuild & goto makeinfo -if not exist make_versioninfo.lib set target=realbuild & goto makeinfo -if exist "%SDK%\Lib\setargv.obj" goto realbuild -echo !!!!!!!! -echo setargv.obj is missing. Please call build setargv -echo !!!!!!!! - -:realbuild -if not exist sqlite3.dll copy ..\..\sqlite-source-3.3.4\sqlite3.dll . -nant -buildfile:python.build all -goto end - -:end +set cmd=devenv pcbuild.sln %build% "%conf%|%platf%" +echo %cmd% +%cmd% diff --git a/PCbuild/build_env.bat b/PCbuild/build_env.bat index 3a8b16ded2b..4c67ae3ac25 100644 --- a/PCbuild/build_env.bat +++ b/PCbuild/build_env.bat @@ -1 +1 @@ -@%comspec% /k env.bat +@%comspec% /k env.bat %* diff --git a/PCbuild9/build_pgo.bat b/PCbuild/build_pgo.bat similarity index 100% rename from PCbuild9/build_pgo.bat rename to PCbuild/build_pgo.bat diff --git a/PCbuild/build_ssl.bat b/PCbuild/build_ssl.bat index 3c87f82104b..ba144463cbe 100644 --- a/PCbuild/build_ssl.bat +++ b/PCbuild/build_ssl.bat @@ -1,14 +1,12 @@ -if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL - -@echo off -if not defined HOST_PYTHON ( - if %1 EQU Debug ( - set HOST_PYTHON=python_d.exe - if not exist python30_d.dll exit 1 - ) ELSE ( - set HOST_PYTHON=python.exe - if not exist python30.dll exit 1 - ) -) -%HOST_PYTHON% build_ssl.py %1 %2 - +@echo off +if not defined HOST_PYTHON ( + if %1 EQU Debug ( + set HOST_PYTHON=python_d.exe + if not exist python30_d.dll exit 1 + ) ELSE ( + set HOST_PYTHON=python.exe + if not exist python30.dll exit 1 + ) +) +%HOST_PYTHON% build_ssl.py %1 %2 %3 + diff --git a/PCbuild/build_ssl.py b/PCbuild/build_ssl.py index 12a78e0cd03..2ccceec0804 100644 --- a/PCbuild/build_ssl.py +++ b/PCbuild/build_ssl.py @@ -13,7 +13,17 @@ # it should configure and build SSL, then build the _ssl and _hashlib # Python extensions without intervention. -import os, sys, re +# Modified by Christian Heimes +# Now this script supports pre-generated makefiles and assembly files. +# Developers don't need an installation of Perl anymore to build Python. A svn +# checkout from our svn repository is enough. +# +# In Order to create the files in the case of an update you still need Perl. +# Run build_ssl in this order: +# python.exe build_ssl.py Release x64 +# python.exe build_ssl.py Release Win32 + +import os, sys, re, shutil # Find all "foo.exe" files on the PATH. def find_all_on_path(filename, extras = None): @@ -51,7 +61,6 @@ def find_working_perl(perls): else: print(" NO perl interpreters were found on this machine at all!") print(" Please install ActivePerl and ensure it appears on your path") - print("The Python SSL module was not built") return None # Locate the best SSL directory given a few roots to look into. @@ -86,38 +95,82 @@ def find_best_ssl_dir(sources): sys.stdout.flush() return best_name +def create_makefile64(makefile, m32): + """Create and fix makefile for 64bit + + Replace 32 with 64bit directories + """ + if not os.path.isfile(m32): + return + with open(m32) as fin: + with open(makefile, 'w') as fout: + for line in fin: + line = line.replace("=tmp32", "=tmp64") + line = line.replace("=out32", "=out64") + line = line.replace("=inc32", "=inc64") + # force 64 bit machine + line = line.replace("MKLIB=lib", "MKLIB=lib /MACHINE:X64") + line = line.replace("LFLAGS=", "LFLAGS=/MACHINE:X64 ") + # don't link against the lib on 64bit systems + line = line.replace("bufferoverflowu.lib", "") + fout.write(line) + os.unlink(m32) + +def fix_makefile(makefile): + """Fix some stuff in all makefiles + """ + if not os.path.isfile(makefile): + return + with open(makefile) as fin: + lines = fin.readlines() + with open(makefile, 'w') as fout: + for line in lines: + if line.startswith("PERL="): + continue + if line.startswith("CP="): + line = "CP=copy\n" + if line.startswith("MKDIR="): + line = "MKDIR=mkdir\n" + if line.startswith("CFLAG="): + line = line.strip() + for algo in ("RC5", "MDC2", "IDEA"): + noalgo = " -DOPENSSL_NO_%s" % algo + if noalgo not in line: + line = line + noalgo + line = line + '\n' + fout.write(line) + def run_configure(configure, do_script): + print("perl Configure "+configure) os.system("perl Configure "+configure) + print(do_script) os.system(do_script) def main(): build_all = "-a" in sys.argv if sys.argv[1] == "Release": - arch = "x86" debug = False - configure = "VC-WIN32" - do_script = "ms\\do_masm" - makefile = "ms\\nt.mak" elif sys.argv[1] == "Debug": - arch = "x86" debug = True + else: + raise ValueError(str(sys.argv)) + + if sys.argv[2] == "Win32": + arch = "x86" configure = "VC-WIN32" - do_script = "ms\\do_masm" - makefile="ms\\d32.mak" - elif sys.argv[1] == "ReleaseItanium": - arch = "ia64" - debug = False - configure = "VC-WIN64I" - do_script = "ms\\do_win64i" - makefile = "ms\\nt.mak" - os.environ["VSEXTCOMP_USECL"] = "MS_ITANIUM" - elif sys.argv[1] == "ReleaseAMD64": + do_script = "ms\\do_nasm" + makefile="ms\\nt.mak" + m32 = makefile + elif sys.argv[2] == "x64": arch="amd64" - debug=False configure = "VC-WIN64A" do_script = "ms\\do_win64a" - makefile = "ms\\nt.mak" - os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON" + makefile = "ms\\nt64.mak" + m32 = makefile.replace('64', '') + #os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON" + else: + raise ValueError(str(sys.argv)) + make_flags = "" if build_all: make_flags = "-a" @@ -126,7 +179,7 @@ def main(): perls = find_all_on_path("perl.exe", ["\\perl\\bin", "C:\\perl\\bin"]) perl = find_working_perl(perls) if perl is None: - sys.exit(1) + print("No Perl installation was found. Existing Makefiles are used.") print("Found a working perl at '%s'" % (perl,)) sys.stdout.flush() @@ -138,10 +191,18 @@ def main(): old_cd = os.getcwd() try: os.chdir(ssl_dir) + # rebuild makefile when we do the role over from 32 to 64 build + if arch == "amd64" and os.path.isfile(m32) and not os.path.isfile(makefile): + os.unlink(m32) + # If the ssl makefiles do not exist, we invoke Perl to generate them. # Due to a bug in this script, the makefile sometimes ended up empty # Force a regeneration if it is. if not os.path.isfile(makefile) or os.path.getsize(makefile)==0: + if perl is None: + print("Perl is required to build the makefiles!") + sys.exit(1) + print("Creating the makefiles...") sys.stdout.flush() # Put our working Perl at the front of our path @@ -149,13 +210,31 @@ def main(): os.pathsep + \ os.environ["PATH"] run_configure(configure, do_script) - if arch=="x86" and debug: - # the do_masm script in openssl doesn't generate a debug - # build makefile so we generate it here: - os.system("perl util\mk1mf.pl debug "+configure+" >"+makefile) + if debug: + print("OpenSSL debug builds aren't supported.") + #if arch=="x86" and debug: + # # the do_masm script in openssl doesn't generate a debug + # # build makefile so we generate it here: + # os.system("perl util\mk1mf.pl debug "+configure+" >"+makefile) + + if arch == "amd64": + create_makefile64(makefile, m32) + fix_makefile(makefile) + shutil.copy(r"crypto\buildinf.h", r"crypto\buildinf_%s.h" % arch) + shutil.copy(r"crypto\opensslconf.h", r"crypto\opensslconf_%s.h" % arch) # Now run make. - makeCommand = "nmake /nologo PERL=\"%s\" -f \"%s\"" %(perl, makefile) + if arch == "amd64": + rc = os.system(r"ml64 -c -Foms\uptable.obj ms\uptable.asm") + if rc: + print("ml64 assembler has failed.") + sys.exit(rc) + + shutil.copy(r"crypto\buildinf_%s.h" % arch, r"crypto\buildinf.h") + shutil.copy(r"crypto\opensslconf_%s.h" % arch, r"crypto\opensslconf.h") + + #makeCommand = "nmake /nologo PERL=\"%s\" -f \"%s\"" %(perl, makefile) + makeCommand = "nmake /nologo -f \"%s\"" % makefile print("Executing ssl makefiles:", makeCommand) sys.stdout.flush() rc = os.system(makeCommand) @@ -165,16 +244,6 @@ def main(): sys.exit(rc) finally: os.chdir(old_cd) - # And finally, we can build the _ssl module itself for Python. - defs = "SSL_DIR=\"%s\"" % (ssl_dir,) - if debug: - defs = defs + " " + "DEBUG=1" - if arch in ('amd64', 'ia64'): - defs = defs + " EXTRA_CFLAGS=/GS- EXTRA_LIBS=bufferoverflowU.lib" - makeCommand = 'nmake /nologo -f _ssl.mak ' + defs + " " + make_flags - print("Executing:", makeCommand) - sys.stdout.flush() - rc = os.system(makeCommand) sys.exit(rc) if __name__=='__main__': diff --git a/PCbuild9/build_tkinter.py b/PCbuild/build_tkinter.py similarity index 100% rename from PCbuild9/build_tkinter.py rename to PCbuild/build_tkinter.py diff --git a/PCbuild/bz2.vcproj b/PCbuild/bz2.vcproj index d86d325b43e..2c16eb0cbb5 100644 --- a/PCbuild/bz2.vcproj +++ b/PCbuild/bz2.vcproj @@ -1,270 +1,544 @@ + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories="$(bz2Dir)" + /> + Name="VCManagedResourceCompilerTool" + /> - - - + Name="VCResourceCompilerTool" + /> + Description="Build libbz2" + CommandLine="cd $(bz2Dir) if exist $(PlatformName)-Debug\libbz2.lib exit 0 if not exist $(PlatformName)-Debug mkdir $(PlatformName)-Debug nmake /nologo /f makefile.msc lib copy libbz2.lib $(PlatformName)-Debug nmake /nologo /f makefile.msc clean " + /> + Name="VCLinkerTool" + AdditionalDependencies="$(bz2Dir)\$(PlatformName)-Debug\libbz2.lib" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + + + + + + + + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(bz2Dir)" + /> + Name="VCManagedResourceCompilerTool" + /> - - - + Name="VCResourceCompilerTool" + /> + Description="Build libbz2" + CommandLine="cd $(bz2Dir) if exist $(PlatformName)-Release\libbz2.lib exit 0 if not exist $(PlatformName)-Release mkdir $(PlatformName)-Release nmake /nologo /f makefile.msc lib copy libbz2.lib $(PlatformName)-Release nmake /nologo /f makefile.msc clean " + /> + Name="VCLinkerTool" + AdditionalDependencies="$(bz2Dir)\$(PlatformName)-Release\libbz2.lib" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + + + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(bz2Dir)" + /> + Name="VCManagedResourceCompilerTool" + /> - - - + Name="VCResourceCompilerTool" + /> + Description="Build libbz2" + CommandLine="cd $(bz2Dir) if exist $(PlatformName)-Release\libbz2.lib exit 0 if not exist $(PlatformName)-Release mkdir $(PlatformName)-Release nmake /nologo /f makefile.msc lib copy libbz2.lib $(PlatformName)-Release nmake /nologo /f makefile.msc clean " + /> + Name="VCLinkerTool" + AdditionalDependencies="$(bz2Dir)\$(PlatformName)-Release\libbz2.lib" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + + + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories="$(bz2Dir)" + /> + Name="VCManagedResourceCompilerTool" + /> - - - + Name="VCResourceCompilerTool" + /> + Description="Build libbz2" + CommandLine="cd $(bz2Dir) if exist $(PlatformName)-Release\libbz2.lib exit 0 if not exist $(PlatformName)-Release mkdir $(PlatformName)-Release nmake /nologo /f makefile.msc lib copy libbz2.lib $(PlatformName)-Release nmake /nologo /f makefile.msc clean " + /> + Name="VCLinkerTool" + AdditionalDependencies="$(bz2Dir)\$(PlatformName)-Release\libbz2.lib" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + diff --git a/PCbuild9/debug.vsprops b/PCbuild/debug.vsprops similarity index 100% rename from PCbuild9/debug.vsprops rename to PCbuild/debug.vsprops diff --git a/PCbuild/env.bat b/PCbuild/env.bat index 05152fe2308..638b16c1064 100644 --- a/PCbuild/env.bat +++ b/PCbuild/env.bat @@ -1,22 +1,5 @@ @echo off -rem Set these values according to where you installed the software -rem You need to install the necessary bits mentioned in: -rem http://wiki.python.org/moin/Building_Python_with_the_free_MS_C_Toolkit - -set TOOLKIT=%ProgramFiles%\Microsoft Visual C++ Toolkit 2003 -set SDK=%ProgramFiles%\Microsoft Platform SDK for Windows Server 2003 R2 -set NET=%ProgramFiles%\Microsoft Visual Studio .NET 2003 -set NANT=%ProgramFiles%\Nant - -set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\Win64;%NANT%\bin;%SDK%\bin -set INCLUDE=%TOOLKIT%\include;%SDK%\Include;%INCLUDE% -set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%SDK%\lib;%LIB% - -echo Build environment for Python -echo TOOLKIT=%TOOLKIT% -echo SDK=%SDK% -echo NET=%NET% -echo NANT=%NANT% -echo Commands: -echo * build -echo * rt +set VS9=%ProgramFiles%\Microsoft Visual Studio 9.0 +echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 +echo. +call "%VS9%\VC\vcvarsall.bat" %1 diff --git a/PCbuild9/idle.bat b/PCbuild/idle.bat similarity index 100% rename from PCbuild9/idle.bat rename to PCbuild/idle.bat diff --git a/PCbuild/make_buildinfo.c b/PCbuild/make_buildinfo.c index 4cebf45ccd8..22b9882477a 100644 --- a/PCbuild/make_buildinfo.c +++ b/PCbuild/make_buildinfo.c @@ -3,6 +3,8 @@ #include #include +#define CMD_SIZE 500 + /* This file creates the getbuildinfo.o object, by first invoking subwcrev.exe (if found), and then invoking cl.exe. As a side effect, it might generate PCBuild\getbuildinfo2.c @@ -23,7 +25,7 @@ int make_buildinfo2() { struct _stat st; HKEY hTortoise; - char command[500]; + char command[CMD_SIZE+1]; DWORD type, size; if (_stat(".svn", &st) < 0) return 0; @@ -40,11 +42,11 @@ int make_buildinfo2() type != REG_SZ) /* Registry corrupted */ return 0; - strcat(command, "bin\\subwcrev.exe"); + strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe"); if (_stat(command+1, &st) < 0) /* subwcrev.exe not part of the release */ return 0; - strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); + strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c"); puts(command); fflush(stdout); if (system(command) < 0) return 0; @@ -60,17 +62,17 @@ int main(int argc, char*argv[]) return EXIT_FAILURE; } if (strcmp(argv[1], "Release") == 0) { - strcat(command, "-MD "); + strcat_s(command, CMD_SIZE, "-MD "); } else if (strcmp(argv[1], "Debug") == 0) { - strcat(command, "-D_DEBUG -MDd "); + strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd "); } else if (strcmp(argv[1], "ReleaseItanium") == 0) { - strcat(command, "-MD /USECL:MS_ITANIUM "); + strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM "); } else if (strcmp(argv[1], "ReleaseAMD64") == 0) { - strcat(command, "-MD "); - strcat(command, "-MD /USECL:MS_OPTERON "); + strcat_s(command, CMD_SIZE, "-MD "); + strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON "); } else { fprintf(stderr, "unsupported configuration %s\n", argv[1]); @@ -78,14 +80,14 @@ int main(int argc, char*argv[]) } if ((do_unlink = make_buildinfo2())) - strcat(command, "getbuildinfo2.c -DSUBWCREV "); + strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV "); else - strcat(command, "..\\Modules\\getbuildinfo.c"); - strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); + strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c"); + strcat_s(command, CMD_SIZE, " -Fogetbuildinfo.o -I..\\Include -I..\\PC"); puts(command); fflush(stdout); result = system(command); if (do_unlink) - unlink("getbuildinfo2.c"); + _unlink("getbuildinfo2.c"); if (result < 0) return EXIT_FAILURE; return 0; diff --git a/PCbuild/make_buildinfo.vcproj b/PCbuild/make_buildinfo.vcproj index c49f0fd82f1..c42229c1a0a 100644 --- a/PCbuild/make_buildinfo.vcproj +++ b/PCbuild/make_buildinfo.vcproj @@ -1,108 +1,146 @@ + RootNamespace="make_buildinfo" + Keyword="Win32Proj" + TargetFrameworkVersion="131072" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops" + CharacterSet="0" + > + + + + + + InlineFunctionExpansion="1" + PreprocessorDefinitions="_CONSOLE" + RuntimeLibrary="0" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops" + > + + + + + + PreprocessorDefinitions="_CONSOLE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> @@ -111,9 +149,11 @@ + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + RelativePath=".\make_buildinfo.c" + > diff --git a/PCbuild/make_versioninfo.vcproj b/PCbuild/make_versioninfo.vcproj index 7bdaaccc31c..dcb922bf1e8 100644 --- a/PCbuild/make_versioninfo.vcproj +++ b/PCbuild/make_versioninfo.vcproj @@ -1,141 +1,325 @@ + TargetFrameworkVersion="131072" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + + + + + + EnableFunctionLevelLinking="true" + CompileAs="0" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + + + + + + CommandLine="cd $(SolutionDir) make_versioninfo.exe > ..\PC\python_nt.h " + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + Description="Build PC/pythonnt_rc(_d).h" + CommandLine="cd $(SolutionDir) make_versioninfo.exe > ..\PC\pythonnt_rc.h " + Outputs="$(SolutionDir)..\PC\pythonnt_rc.h" + /> + Name="VCXMLDataGeneratorTool" + /> + Name="VCWebServiceProxyGeneratorTool" + /> + Name="VCMIDLTool" + /> + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + EnableIntrinsicFunctions="true" + PreprocessorDefinitions="_CONSOLE" + /> + Name="VCManagedResourceCompilerTool" + /> + Name="VCResourceCompilerTool" + /> + + + + + + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="0" + > + + + + + + InlineFunctionExpansion="1" + EnableIntrinsicFunctions="false" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="_CONSOLE" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + CompileAs="0" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + + + + + + CommandLine="cd $(SolutionDir) make_versioninfo_d.exe > ..\PC\python_nt_d.h " + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + Description="Build PC/pythonnt_rc(_d).h" + CommandLine="cd $(SolutionDir) make_versioninfo_d.exe > ..\PC\pythonnt_rc_d.h " + Outputs="$(SolutionDir)..\PC\pythonnt_rc_d.h" + /> + Name="VCXMLDataGeneratorTool" + /> + Name="VCWebServiceProxyGeneratorTool" + /> + Name="VCMIDLTool" + TargetEnvironment="3" + /> + Name="VCCLCompilerTool" + Optimization="0" + InlineFunctionExpansion="1" + EnableIntrinsicFunctions="false" + PreprocessorDefinitions="_CONSOLE" + /> + Name="VCManagedResourceCompilerTool" + /> + Name="VCResourceCompilerTool" + /> + + + + + + + + + - - + + + + diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index e44a39eefdf..ba8b005abc4 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -1,49 +1,12 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{E1DBB220-D64B-423D-A545-539A55AA7FE2}" +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" ProjectSection(ProjectDependencies) = postProject {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}" - ProjectSection(ProjectDependencies) = postProject - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{59CBF474-9E06-4C50-9142-C44A118BB447}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{AC557788-6354-43F7-BE05-C9C8C59A344A}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" ProjectSection(ProjectDependencies) = postProject @@ -56,233 +19,453 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{51F35FAE-FB92-4B2C-9187-1542C065AD77}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{F22F40F4-D318-40DC-96B3-88DC81CE0894}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{8CF334D9-4F82-42EB-97AF-83592C5AFD2F}" - ProjectSection(ProjectDependencies) = postProject - {F22F40F4-D318-40DC-96B3-88DC81CE0894} = {F22F40F4-D318-40DC-96B3-88DC81CE0894} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{2FF0A312-22F9-4C34-B070-842916DE27A9}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - ReleaseAMD64 = ReleaseAMD64 - ReleaseItanium = ReleaseItanium - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.ActiveCfg = Debug|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.Build.0 = Debug|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.ActiveCfg = Release|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.Build.0 = Release|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.ActiveCfg = Debug|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.Build.0 = Debug|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.ActiveCfg = Release|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.Build.0 = Release|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.ActiveCfg = Debug|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.Build.0 = Debug|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.ActiveCfg = Release|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.Build.0 = Release|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.ActiveCfg = Debug|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.Build.0 = Debug|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.ActiveCfg = Release|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.Release.Build.0 = Release|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.ActiveCfg = Debug|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.Build.0 = Debug|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.ActiveCfg = Release|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.Build.0 = Release|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.ActiveCfg = Debug|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.Build.0 = Debug|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.ActiveCfg = Release|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.Build.0 = Release|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.Build.0 = Release|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.ActiveCfg = Debug|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.Build.0 = Debug|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.ActiveCfg = Release|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.Build.0 = Release|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.ActiveCfg = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.Build.0 = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.ActiveCfg = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.ActiveCfg = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.Build.0 = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.ActiveCfg = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.Build.0 = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.ActiveCfg = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.Build.0 = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.ActiveCfg = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.Build.0 = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.ActiveCfg = Debug|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.Build.0 = Debug|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.ActiveCfg = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.Build.0 = Release|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.ActiveCfg = Debug|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.Build.0 = Debug|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.ActiveCfg = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.Build.0 = Release|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.ActiveCfg = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.Build.0 = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.Build.0 = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseAMD64.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseItanium.ActiveCfg = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.ActiveCfg = Debug|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.Build.0 = Debug|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.ActiveCfg = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.Build.0 = Release|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.ActiveCfg = Debug|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.Build.0 = Debug|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.ActiveCfg = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.Build.0 = Release|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.ActiveCfg = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.Build.0 = Debug|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.Build.0 = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.ActiveCfg = Debug|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Debug.Build.0 = Debug|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.ActiveCfg = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.Release.Build.0 = Release|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {2C0BEFB9-70E2-4F80-AC5B-4AB8EE023574}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.ActiveCfg = Debug|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Debug.Build.0 = Debug|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.ActiveCfg = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.Release.Build.0 = Release|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {F22F40F4-D318-40DC-96B3-88DC81CE0894}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.ActiveCfg = Debug|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Debug.Build.0 = Debug|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.ActiveCfg = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.Release.Build.0 = Release|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {8CF334D9-4F82-42EB-97AF-83592C5AFD2F}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.ActiveCfg = Debug|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Debug.Build.0 = Debug|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.ActiveCfg = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.Release.Build.0 = Release|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32 - {2FF0A312-22F9-4C34-B070-842916DE27A9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32 - EndGlobalSection - GlobalSection(SolutionItems) = postSolution +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" + ProjectSection(SolutionItems) = preProject ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c readme.txt = readme.txt + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" + ProjectSection(ProjectDependencies) = postProject + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} + {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" + ProjectSection(ProjectDependencies) = postProject + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bdist_wininst", "bdist_wininst.vcproj", "{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + PGInstrument|Win32 = PGInstrument|Win32 + PGInstrument|x64 = PGInstrument|x64 + PGUpdate|Win32 = PGUpdate|Win32 + PGUpdate|x64 = PGUpdate|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 + {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 + {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 + {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 + {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 + {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 + {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64 + {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64 + {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64 + {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 + {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64 + {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64 + {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64 + {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64 + {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64 + {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64 + {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64 + {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64 + {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64 + {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64 + {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 + {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32 + {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|Win32 EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection EndGlobal diff --git a/PCbuild9/pginstrument.vsprops b/PCbuild/pginstrument.vsprops similarity index 100% rename from PCbuild9/pginstrument.vsprops rename to PCbuild/pginstrument.vsprops diff --git a/PCbuild9/pgupdate.vsprops b/PCbuild/pgupdate.vsprops similarity index 100% rename from PCbuild9/pgupdate.vsprops rename to PCbuild/pgupdate.vsprops diff --git a/PCbuild9/pyd.vsprops b/PCbuild/pyd.vsprops similarity index 100% rename from PCbuild9/pyd.vsprops rename to PCbuild/pyd.vsprops diff --git a/PCbuild9/pyd_d.vsprops b/PCbuild/pyd_d.vsprops similarity index 100% rename from PCbuild9/pyd_d.vsprops rename to PCbuild/pyd_d.vsprops diff --git a/PCbuild/pyexpat.vcproj b/PCbuild/pyexpat.vcproj index 1c5b3ad306c..2d2cd9d1eaf 100644 --- a/PCbuild/pyexpat.vcproj +++ b/PCbuild/pyexpat.vcproj @@ -1,262 +1,552 @@ + ProjectGUID="{D06B6426-4762-44CC-8BAD-D79052507F2F}" + RootNamespace="pyexpat" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + AdditionalIncludeDirectories=".\..\Modules\expat" + PreprocessorDefinitions="PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories=".\..\Modules\expat" + PreprocessorDefinitions="PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories=".\..\Modules\expat" + PreprocessorDefinitions="PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + AdditionalIncludeDirectories=".\..\Modules\expat" + PreprocessorDefinitions="PYEXPAT_EXPORTS;HAVE_EXPAT_H;XML_NS;XML_DTD;BYTEORDER=1234;XML_CONTEXT_BYTES=1024;XML_STATIC;HAVE_MEMMOVE" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/PCbuild9/pyproject.vsprops b/PCbuild/pyproject.vsprops similarity index 98% rename from PCbuild9/pyproject.vsprops rename to PCbuild/pyproject.vsprops index 64cadc3625a..eaea0be4c60 100644 --- a/PCbuild9/pyproject.vsprops +++ b/PCbuild/pyproject.vsprops @@ -38,7 +38,7 @@ /> + ProjectGUID="{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" + TargetFrameworkVersion="131072" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + + + + + + EnableFunctionLevelLinking="true" + CompileAs="0" + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> + Culture="1033" + /> - - - - - - - - + Name="VCPreLinkEventTool" + /> + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AdditionalIncludeDirectories="..\Include" + /> - - - - - - - - + Name="VCPreLinkEventTool" + /> + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + + + + + + Optimization="0" + EnableIntrinsicFunctions="false" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="_CONSOLE" + RuntimeLibrary="3" + BrowseInformation="1" + CompileAs="0" + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + + + + + + + + + + + + + Culture="1033" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + AdditionalDependencies="odbccp32.lib" + OutputFile="$(OutDir)\python.exe" + SubSystem="1" + StackReserveSize="2000000" + BaseAddress="0x1d000000" + ImportLibrary="" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + diff --git a/PCbuild/pythoncore.vcproj b/PCbuild/pythoncore.vcproj index 9f2fa005e55..ff270521915 100644 --- a/PCbuild/pythoncore.vcproj +++ b/PCbuild/pythoncore.vcproj @@ -1,805 +1,1772 @@ + TargetFrameworkVersion="131072" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> + AdditionalIncludeDirectories="..\Include" + /> + Name="VCPreLinkEventTool" + Description="generate buildinfo" + CommandLine=""$(SolutionDir)make_buildinfo.exe" $(ConfigurationName)" + /> + Name="VCLinkerTool" + AdditionalDependencies="getbuildinfo.o" + OutputFile="$(OutDir)\$(PyDllName).dll" + IgnoreDefaultLibraryNames="libc" + ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb" + BaseAddress="0x1e000000" + ImportLibrary="$(OutDir)$(PyDllName).lib" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="0" + > + + + + + + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> - - - - - - - - - - - - - + AdditionalIncludeDirectories="..\Include" + /> + CommandLine=""$(SolutionDir)make_buildinfo.exe" $(ConfigurationName)" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + AdditionalIncludeDirectories="..\Include" + /> + CommandLine="$(SolutionDir)make_buildinfo.exe Release" + /> + + + + + + + + + + + + + + + + + + AdditionalIncludeDirectories="..\Include" + /> + Name="VCPreLinkEventTool" + Description="generate buildinfo" + CommandLine="$(SolutionDir)make_buildinfo.exe $(ConfigurationName)" + /> + Name="VCLinkerTool" + AdditionalDependencies="getbuildinfo.o" + OutputFile="$(OutDir)\$(PyDllName).dll" + IgnoreDefaultLibraryNames="libc" + ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb" + BaseAddress="0x1e000000" + ImportLibrary="$(OutDirPGI)$(PyDllName).lib" + TargetMachine="17" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name="Include" + > + RelativePath="..\Include\abstract.h" + > + RelativePath="..\Include\asdl.h" + > + RelativePath="..\Include\ast.h" + > + RelativePath="..\Include\bitset.h" + > + RelativePath="..\Include\boolobject.h" + > + RelativePath="..\Include\bufferobject.h" + > + RelativePath="..\Include\cellobject.h" + > + RelativePath="..\Include\ceval.h" + > + RelativePath="..\Include\classobject.h" + > + RelativePath="..\Include\cobject.h" + > + RelativePath="..\Include\code.h" + > - - - - - - - - - - - - + RelativePath="..\Include\codecs.h" + > + RelativePath="..\Include\compile.h" + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PCbuild/pythonw.vcproj b/PCbuild/pythonw.vcproj index d00142fa1cb..add46842074 100644 --- a/PCbuild/pythonw.vcproj +++ b/PCbuild/pythonw.vcproj @@ -1,260 +1,617 @@ + ProjectGUID="{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" + TargetFrameworkVersion="131072" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="0" + > + + + + + + CompileAs="0" + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> + Culture="1033" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + OutputFile="$(OutDir)\pythonw_d.exe" + StackReserveSize="2000000" + BaseAddress="0x1d000000" + TargetMachine="1" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + EnableFunctionLevelLinking="true" + CompileAs="0" + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> + Culture="1033" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + OutputFile="$(OutDir)\pythonw.exe" + StackReserveSize="2000000" + BaseAddress="0x1d000000" + TargetMachine="1" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + EnableFunctionLevelLinking="true" + CompileAs="0" + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> + Culture="1033" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + OutputFile="$(OutDir)\pythonw.exe" + StackReserveSize="2000000" + BaseAddress="0x1d000000" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + > + + + + + + EnableFunctionLevelLinking="true" + CompileAs="0" + /> - - - - - + Name="VCManagedResourceCompilerTool" + /> + Culture="1033" + /> + Name="VCPreLinkEventTool" + /> + Name="VCLinkerTool" + OutputFile="$(OutDir)\pythonw.exe" + StackReserveSize="2000000" + BaseAddress="0x1d000000" + ImportLibrary="" + TargetMachine="1" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index 2e343126f22..fe264e363ef 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -1,31 +1,41 @@ -Building Python using VC++ 7.1 -------------------------------------- +Building Python using VC++ 9.0 +------------------------------ This directory is used to build Python for Win32 platforms, e.g. Windows -95, 98 and NT. It requires Microsoft Visual C++ 7.1 -(a.k.a. Visual Studio .NET 2003). +2000, XP and Vista. It requires Microsoft Visual C++ 9.0 +(a.k.a. Visual Studio .NET 2008). (For other Windows platforms and compilers, see ../PC/readme.txt.) -All you need to do is open the workspace "pcbuild.sln" in MSVC++, select -the Debug or Release setting (using "Solution Configuration" from -the "Standard" toolbar"), and build the projects. +All you need to do is open the workspace "pcbuild.sln" in Visual Studio, +select the desired combination of configuration and platform and eventually +build the solution. Unless you are going to debug a problem in the core or +you are going to create an optimized build you want to select "Release" as +configuration. -The proper order to build subprojects: +The PCbuild directory is compatible with all versions of Visual Studio from +VS C++ Express Edition over the standard edition up to the professional +edition. However the express edition does support features like solution +folders or profile guided optimization (PGO). The missing bits and pieces +won't stop you from building Python. -1) pythoncore (this builds the main Python DLL and library files, - python30.{dll, lib} in Release mode) +The solution is configured to build the projects in the correct order. "Build +Solution" or F6 takes care of dependencies except for x64 builds. To make +cross compiling x64 builds on a 32bit OS possible the x64 builds require a +32bit version of Python. -2) python (this builds the main Python executable, - python.exe in Release mode) -3) the other subprojects, as desired or needed (note: you probably don't - want to build most of the other subprojects, unless you're building an - entire Python distribution from scratch, or specifically making changes - to the subsystems they implement, or are running a Python core buildbot - test slave; see SUBPROJECTS below) +NOTE: + You probably don't want to build most of the other subprojects, unless + you're building an entire Python distribution from scratch, or + specifically making changes to the subsystems they implement, or are + running a Python core buildbot test slave; see SUBPROJECTS below) When using the Debug setting, the output files have a _d added to their name: python30_d.dll, python_d.exe, parser_d.pyd, and so on. +The 32bit builds end up in the solution folder PCbuild while the x64 builds +land in the amd64 subfolder. The PGI and PGO builds for profile guided +optimization end up in their own folders, too. + SUBPROJECTS ----------- These subprojects should build out of the box. Subprojects other than the @@ -54,29 +64,40 @@ unicodedata winsound play sounds (typically .wav files) under Windows -The following subprojects will generally NOT build out of the box. They +The following subprojects will generally NOT build out of the box. They wrap code Python doesn't control, and you'll need to download the base packages first and unpack them into siblings of PCbuilds's parent -directory; for example, if your PCbuild is .......\dist\src\PCbuild\, -unpack into new subdirectories of dist\. +directory; for example, if your PCbuild is ..\dist\py3k\PCbuild\, +unpack into new subdirectories of ..\dist\. _tkinter Python wrapper for the Tk windowing system. Requires building - Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.12. + Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.16. + + NOTE: The 64 build builds must land in tcltk64 instead of tcltk. Get source ---------- In the dist directory, run - svn export http://svn.python.org/projects/external/tcl8.4.12 - svn export http://svn.python.org/projects/external/tk8.4.12 + svn export http://svn.python.org/projects/external/tcl8.4.16 + svn export http://svn.python.org/projects/external/tk8.4.16 svn export http://svn.python.org/projects/external/tix-8.4.0 - Build Tcl first (done here w/ MSVC 7.1 on Windows XP) + Build with build_tkinter.py + --------------------------- + The PCbuild directory contains a Python script which automates all + steps. Run the script in a Visual Studio 2009 command prompt with + + python build_tkinter.py Win32 + + Use x64 instead of Win32 for the x64 platform. + + Build Tcl first --------------- - Use "Start -> All Programs -> Microsoft Visual Studio .NET 2003 - -> Visual Studio .NET Tools -> Visual Studio .NET 2003 Command Prompt" + Use "Start -> All Programs -> Microsoft Visual Studio 2008 + -> Visual Studio Tools -> Visual Studio 2008 Command Prompt" to get a shell window with the correct environment settings - cd dist\tcl8.4.12\win + cd dist\tcl8.4.16\win nmake -f makefile.vc nmake -f makefile.vc INSTALLDIR=..\..\tcltk install @@ -91,9 +112,9 @@ _tkinter Build Tk -------- - cd dist\tk8.4.12\win - nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 - nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install + cd dist\tk8.4.16\win + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 INSTALLDIR=..\..\tcltk install XXX Should we compile with OPTS=threads? @@ -101,7 +122,7 @@ _tkinter XXX directory. Is all of that really needed for Python use of Tcl/Tk? Optional: run tests, via - nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 test + nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 test On WinXP Pro, wholly up to date as of 30-Aug-2004: all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13 @@ -111,8 +132,8 @@ _tkinter Built Tix --------- cd dist\tix-8.4.0\win - nmake -f python.mak - nmake -f python.mak install + nmake -f python9.mak + nmake -f python9.mak install bz2 Python wrapper for the libbz2 compression library. Homepage @@ -129,28 +150,25 @@ bz2 bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib you need to clean up bzip2-1.0.3\ by hand. - The build step shouldn't yield any warnings or errors, and should end - by displaying 6 blocks each terminated with - FC: no differences encountered - - All of this managed to build bzip2-1.0.3\libbz2.lib, which the Python - project links in. + All of this managed to build libbz2.lib in + bzip2-1.0.3\$platform-$configuration\, which the Python project links in. _bsddb To use the version of bsddb that Python is built with by default, invoke (in the dist directory) - svn export http://svn.python.org/projects/external/db-4.4.20 + svn export http://svn.python.org/projects/external/db-4.4.20 - - Then open a VS.NET 2003 shell, and invoke: - - devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Release /project db_static - - and do that a second time for a Debug build too: - - devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static + Next open the solution file db-4.4.20\build_win32\Berkeley_DB.sln with + Visual Studio and convert the projects to the new format. The standard + and professional version of VS 2008 builds the necessary libraries + in a pre-link step of _bsddb. However the express edition is missing + some pieces and you have to build the libs yourself. + + The _bsddb subprojects depends only on the db_static project of + Berkeley DB. You have to choose either "Release", "Release AMD64", "Debug" + or "Debug AMD64" as configuration. Alternatively, if you want to start with the original sources, go to Sleepycat's download page: @@ -168,7 +186,7 @@ _bsddb Now apply any patches that apply to your version. Open - dist\db-4.4.20\docs\index.html + db-4.4.20\docs\ref\build_win\intro.html and follow the "Windows->Building Berkeley DB with Visual C++ .NET" instructions for building the Sleepycat @@ -178,40 +196,6 @@ _bsddb To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py is then enabled. Running in verbose mode may be helpful. - XXX The test_bsddb3 tests don't always pass, on Windows (according to - XXX me) or on Linux (according to Barry). (I had much better luck - XXX on Win2K than on Win98SE.) The common failure mode across platforms - XXX is - XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable - XXX to join the environment') - XXX - XXX and it appears timing-dependent. On Win2K I also saw this once: - XXX - XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ... - XXX Exception in thread reader 1: - XXX Traceback (most recent call last): - XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap - XXX self.run() - XXX File "C:\Code\python\lib\threading.py", line 399, in run - XXX self.__target(*self.__args, **self.__kwargs) - XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in - XXX readerThread - XXX rec = c.next() - XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed - XXX to resolve a deadlock') - XXX - XXX I'm told that DBLockDeadlockError is expected at times. It - XXX doesn't cause a test to fail when it happens (exceptions in - XXX threads are invisible to unittest). - - Building for Win64: - - open a VS.NET 2003 command prompt - - run the SDK setenv.cmd script, passing /RETAIL and the target - architecture (/SRV64 for Itanium, /X64 for AMD64) - - build BerkeleyDB with the solution configuration matching the - target ("Release IA64" for Itanium, "Release AMD64" for AMD64), e.g. - devenv db-4.4.20\build_win32\Berkeley_DB.sln /build "Release AMD64" /project db_static /useenv - _sqlite3 Python wrapper for SQLite library. @@ -220,22 +204,35 @@ _sqlite3 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 To use the extension module in a Python build tree, copy sqlite3.dll into - the PCbuild folder. + the PCbuild folder. The source directory in svn also contains a .def file + from the binary release of sqlite3. _ssl Python wrapper for the secure sockets library. Get the source code through - svn export http://svn.python.org/projects/external/openssl-0.9.8a + svn export http://svn.python.org/projects/external/openssl-0.9.8g Alternatively, get the latest version from http://www.openssl.org. You can (theoretically) use any version of OpenSSL you like - the build process will automatically select the latest version. - You must also install ActivePerl from + You must install the NASM assembler from + http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ + for x86 builds. Put nasmw.exe anywhere in your PATH. + + You can also install ActivePerl from http://www.activestate.com/Products/ActivePerl/ - as this is used by the OpenSSL build process. Complain to them . + if you like to use the official sources instead of the files from + python's subversion repository. The svn version contains pre-build + makefiles and assembly files. + + The build process makes sure that no patented algorithms are included. + For now RC5, MDC2 and IDEA are excluded from the build. You may have + to manually remove $(OBJ_D)\i_*.obj from ms\nt.mak if the build process + complains about missing files or forbidden IDEA. Again the files provided + in the subversion repository are already fixed. The MSVC project simply invokes PCBuild/build_ssl.py to perform the build. This Python script locates and builds your OpenSSL @@ -255,6 +252,10 @@ _ssl Building for Itanium -------------------- +NOTE: +Official support for Itanium builds have been dropped from the build. Please +contact as and provide patches if you are interested in Itanium builds. + The project files support a ReleaseItanium configuration which creates Win64/Itanium binaries. For this to work, you need to install the Platform SDK, in particular the 64-bit support. This includes an Itanium compiler @@ -267,158 +268,67 @@ accordingly. The project files require atleast version 0.9. Building for AMD64 ------------------ -The build process for the ReleaseAMD64 configuration is very similar -to the Itanium configuration; make sure you use the latest version of -vsextcomp. +The build process for AMD64 / x64 is very similar to standard builds. You just +have to set x64 as platform. Building Python Using the free MS Toolkit Compiler -------------------------------------------------- -The build process for Visual C++ can be used almost unchanged with the free MS -Toolkit Compiler. This provides a way of building Python using freely -available software. +Microsoft has withdrawn the free MS Toolkit Compiler, so this can no longer +be considered a supported option. Instead you can use the free VS C++ Express +Edition. -Note that Microsoft have withdrawn the free MS Toolkit Compiler, so this can -no longer be considered a supported option. The instructions are still -correct, but you need to already have a copy of the compiler in order to use -them. Microsoft now supply Visual C++ 2005 Express Edition for free, but this -is NOT compatible with Visual C++ 7.1 (it uses a different C runtime), and so -cannot be used to build a version of Python compatible with the standard -python.org build. If you are interested in using Visual C++ 2005 Express -Edition, however, you should look at the PCBuild8 directory. +Profile Guided Optimization +--------------------------- -Requirements +The solution has two configurations for PGO. The PGInstrument configuration +must be build first. The PGInstrument binaries are lniked against a profiling +library and contain extra debug information. The PGUpdate configuration takes the profiling data and generates optimized binaries. - To build Python, the following tools are required: +The build_pgo.bat script automates the creation of optimized binaries. It +creates the PGI files, runs the unit test suite or PyBench with the PGI +python and finally creates the optimized files. - * The Visual C++ Toolkit Compiler - no longer available for download - see above - * A recent Platform SDK - from http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a - * The .NET 1.1 SDK - from http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d +http://msdn2.microsoft.com/en-us/library/e7k32f4k(VS.90).aspx - [Does anyone have better URLs for the last 2 of these?] +Static library +-------------- - The toolkit compiler is needed as it is an optimising compiler (the - compiler supplied with the .NET SDK is a non-optimising version). The - platform SDK is needed to provide the Windows header files and libraries - (the Windows 2003 Server SP1 edition, typical install, is known to work - - other configurations or versions are probably fine as well). The .NET 1.1 - SDK is needed because it contains a version of msvcrt.dll which links to - the msvcr71.dll CRT. Note that the .NET 2.0 SDK is NOT acceptable, as it - references msvcr80.dll. +The solution has no configuration for static libraries. However it is easy +it build a static library instead of a DLL. You simply have to set the +"Configuration Type" to "Static Library (.lib)" and alter the preprocessor +macro "Py_ENABLE_SHARED" to "Py_NO_ENABLE_SHARED". You may also have to +change the "Runtime Library" from "Multi-threaded DLL (/MD)" to +"Multi-threaded (/MT)". - All of the above items should be installed as normal. +Visual Studio properties +------------------------ - If you intend to build the openssl (needed for the _ssl extension) you - will need the C runtime sources installed as part of the platform SDK. +The PCbuild solution makes heavy use of Visual Studio property files +(*.vsprops). The properties can be viewed and altered in the Property +Manager (View -> Other Windows -> Property Manager). - In addition, you will need Nant, available from - http://nant.sourceforge.net. The 0.85 release candidate 3 version is known - to work. This is the latest released version at the time of writing. Later - "nightly build" versions are known NOT to work - it is not clear at - present whether future released versions will work. + * debug (debug macro: _DEBUG) + * pginstrument (PGO) + * pgupdate (PGO) + +-- pginstrument + * pyd (python extension, release build) + +-- release + +-- pyproject + * pyd_d (python extension, debug build) + +-- debug + +-- pyproject + * pyproject (base settings for all projects, user macros like PyDllName) + * release (release macro: NDEBUG) + * x64 (AMD64 / x64 platform specific settings) -Setting up the environment - - Start a platform SDK "build environment window" from the start menu. The - "Windows XP 32-bit retail" version is known to work. - - Add the following directories to your PATH: - * The toolkit compiler directory - * The SDK "Win64" binaries directory - * The Nant directory - Add to your INCLUDE environment variable: - * The toolkit compiler INCLUDE directory - Add to your LIB environment variable: - * The toolkit compiler LIB directory - * The .NET SDK Visual Studio 2003 VC7\lib directory - - The following commands should set things up as you need them: - - rem Set these values according to where you installed the software - set TOOLKIT=C:\Program Files\Microsoft Visual C++ Toolkit 2003 - set SDK=C:\Program Files\Microsoft Platform SDK - set NET=C:\Program Files\Microsoft Visual Studio .NET 2003 - set NANT=C:\Utils\Nant - - set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\win64;%NANT%\bin - set INCLUDE=%TOOLKIT%\include;%INCLUDE% - set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%LIB% - - The "win64" directory from the SDK is added to supply executables such as - "cvtres" and "lib", which are not available elsewhere. The versions in the - "win64" directory are 32-bit programs, so they are fine to use here. - - That's it. To build Python (the core only, no binary extensions which - depend on external libraries) you just need to issue the command - - nant -buildfile:python.build all - - from within the PCBuild directory. - -Extension modules - - To build those extension modules which require external libraries - (_tkinter, bz2, _bsddb, _sqlite3, _ssl) you can follow the instructions - for the Visual Studio build above, with a few minor modifications. These - instructions have only been tested using the sources in the Python - subversion repository - building from original sources should work, but - has not been tested. - - For each extension module you wish to build, you should remove the - associated include line from the excludeprojects section of pc.build. - - The changes required are: - - _tkinter - The tix makefile (tix-8.4.0\win\makefile.vc) must be modified to - remove references to TOOLS32. The relevant lines should be changed to - read: - cc32 = cl.exe - link32 = link.exe - include32 = - The remainder of the build instructions will work as given. - - bz2 - No changes are needed - - _bsddb - The file db.build should be copied from the Python PCBuild directory - to the directory db-4.4.20\build_win32. - - The file db_static.vcproj in db-4.4.20\build_win32 should be edited to - remove the string "$(SolutionDir)" - this occurs in 2 places, only - relevant for 64-bit builds. (The edit is required as otherwise, nant - wants to read the solution file, which is not in a suitable form). - - The bsddb library can then be build with the command - nant -buildfile:db.build all - run from the db-4.4.20\build_win32 directory. - - _sqlite3 - No changes are needed. However, in order for the tests to succeed, a - copy of sqlite3.dll must be downloaded, and placed alongside - python.exe. - - _ssl - The documented build process works as written. However, it needs a - copy of the file setargv.obj, which is not supplied in the platform - SDK. However, the sources are available (in the crt source code). To - build setargv.obj, proceed as follows: - - Copy setargv.c, cruntime.h and internal.h from %SDK%\src\crt to a - temporary directory. - Compile using "cl /c /I. /MD /D_CRTBLD setargv.c" - Copy the resulting setargv.obj to somewhere on your LIB environment - (%SDK%\lib is a reasonable place). - - With setargv.obj in place, the standard build process should work - fine. +The pyproject propertyfile defines _WIN32 and x64 defines _WIN64 and _M_X64 +although the macros are set by the compiler, too. The GUI doesn't always know +about the macros and confuse the user with false information. YOUR OWN EXTENSION DLLs ----------------------- + If you want to create your own extension module DLL, there's an example with easy-to-follow instructions in ../PC/example/; read the file readme.txt there first. diff --git a/PCbuild9/release.vsprops b/PCbuild/release.vsprops similarity index 100% rename from PCbuild9/release.vsprops rename to PCbuild/release.vsprops diff --git a/PCbuild/rt.bat b/PCbuild/rt.bat old mode 100755 new mode 100644 diff --git a/PCbuild/select.vcproj b/PCbuild/select.vcproj index 615cc0f2207..b97cb4d1842 100644 --- a/PCbuild/select.vcproj +++ b/PCbuild/select.vcproj @@ -1,257 +1,536 @@ + ProjectGUID="{18CAE28C-B454-46C1-87A0-493D91D97F03}" + RootNamespace="select" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + - - - - - - - - - - - - - - - + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + diff --git a/PCbuild/unicodedata.vcproj b/PCbuild/unicodedata.vcproj index cc23da17641..084161afca4 100644 --- a/PCbuild/unicodedata.vcproj +++ b/PCbuild/unicodedata.vcproj @@ -1,246 +1,532 @@ + ProjectGUID="{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" + RootNamespace="unicodedata" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + - - - - - - - - - - - - - - - + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd_d.vsprops;.\x64.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + diff --git a/PCbuild/w9xpopen.vcproj b/PCbuild/w9xpopen.vcproj index 9015500dda6..9fcff7b6464 100644 --- a/PCbuild/w9xpopen.vcproj +++ b/PCbuild/w9xpopen.vcproj @@ -1,120 +1,575 @@ + ProjectGUID="{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" + RootNamespace="w9xpopen" + TargetFrameworkVersion="131072" + > + Name="Win32" + /> + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="0" + > + + + + + + RuntimeLibrary="1" + /> + Name="VCManagedResourceCompilerTool" + /> + + + SubSystem="1" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + + + + + + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + /> + Name="VCManagedResourceCompilerTool" + /> + + + GenerateDebugInformation="false" + SubSystem="1" + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + diff --git a/PCbuild/winsound.vcproj b/PCbuild/winsound.vcproj index 6736ad7958c..b6da131eb13 100644 --- a/PCbuild/winsound.vcproj +++ b/PCbuild/winsound.vcproj @@ -1,250 +1,522 @@ + ProjectGUID="{28B5D777-DDF2-4B6B-B34F-31D938813856}" + RootNamespace="winsound" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + Name="Win32" + /> + + + + InheritedPropertySheets=".\pyd_d.vsprops" + CharacterSet="0" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + InheritedPropertySheets=".\pyd.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\x64.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> - - - + Name="VCPostBuildEventTool" + /> + InheritedPropertySheets=".\pyd.vsprops;.\pginstrument.vsprops" + CharacterSet="0" + WholeProgramOptimization="1" + > + + + + + + /> + Name="VCManagedResourceCompilerTool" + /> + + + /> + Name="VCALinkTool" + /> + Name="VCManifestTool" + /> + Name="VCXDCMakeTool" + /> + Name="VCBscMakeTool" + /> + Name="VCFxCopTool" + /> + Name="VCAppVerifierTool" + /> + Name="VCPostBuildEventTool" + /> + + + Name="VCPreBuildEventTool" + /> + Name="VCCustomBuildTool" + /> + Name="VCXMLDataGeneratorTool" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + diff --git a/PCbuild9/x64.vsprops b/PCbuild/x64.vsprops similarity index 100% rename from PCbuild9/x64.vsprops rename to PCbuild/x64.vsprops diff --git a/PCbuild9/_bsddb.vcproj b/PCbuild9/_bsddb.vcproj deleted file mode 100644 index 205a1788d80..00000000000 --- a/PCbuild9/_bsddb.vcproj +++ /dev/null @@ -1,553 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_ctypes.vcproj b/PCbuild9/_ctypes.vcproj deleted file mode 100644 index f923ca0d5c3..00000000000 --- a/PCbuild9/_ctypes.vcproj +++ /dev/null @@ -1,704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_ctypes_test.vcproj b/PCbuild9/_ctypes_test.vcproj deleted file mode 100644 index 156c10c8453..00000000000 --- a/PCbuild9/_ctypes_test.vcproj +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_elementtree.vcproj b/PCbuild9/_elementtree.vcproj deleted file mode 100644 index c22c252014c..00000000000 --- a/PCbuild9/_elementtree.vcproj +++ /dev/null @@ -1,621 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_msi.vcproj b/PCbuild9/_msi.vcproj deleted file mode 100644 index 2d925996590..00000000000 --- a/PCbuild9/_msi.vcproj +++ /dev/null @@ -1,529 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_socket.vcproj b/PCbuild9/_socket.vcproj deleted file mode 100644 index 6ef540788ee..00000000000 --- a/PCbuild9/_socket.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_sqlite3.vcproj b/PCbuild9/_sqlite3.vcproj deleted file mode 100644 index 646c5453fc2..00000000000 --- a/PCbuild9/_sqlite3.vcproj +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_ssl.vcproj b/PCbuild9/_ssl.vcproj deleted file mode 100644 index ddd396ae5ca..00000000000 --- a/PCbuild9/_ssl.vcproj +++ /dev/null @@ -1,549 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_testcapi.vcproj b/PCbuild9/_testcapi.vcproj deleted file mode 100644 index 8ef456a58db..00000000000 --- a/PCbuild9/_testcapi.vcproj +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/_tkinter.vcproj b/PCbuild9/_tkinter.vcproj deleted file mode 100644 index e3baa5cee17..00000000000 --- a/PCbuild9/_tkinter.vcproj +++ /dev/null @@ -1,541 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/build.bat b/PCbuild9/build.bat deleted file mode 100644 index 9bc818676fe..00000000000 --- a/PCbuild9/build.bat +++ /dev/null @@ -1,17 +0,0 @@ -@echo off -rem A batch program to build or rebuild a particular configuration. -rem just for convenience. - -setlocal -set platf=Win32 -set conf=Release -set build=/build - -:CheckOpts -if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts -if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts -if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts - -set cmd=devenv pcbuild.sln %build% "%conf%|%platf%" -echo %cmd% -%cmd% diff --git a/PCbuild9/build_env.bat b/PCbuild9/build_env.bat deleted file mode 100644 index 4c67ae3ac25..00000000000 --- a/PCbuild9/build_env.bat +++ /dev/null @@ -1 +0,0 @@ -@%comspec% /k env.bat %* diff --git a/PCbuild9/build_ssl.py b/PCbuild9/build_ssl.py deleted file mode 100644 index 2ccceec0804..00000000000 --- a/PCbuild9/build_ssl.py +++ /dev/null @@ -1,250 +0,0 @@ -# Script for building the _ssl and _hashlib modules for Windows. -# Uses Perl to setup the OpenSSL environment correctly -# and build OpenSSL, then invokes a simple nmake session -# for the actual _ssl.pyd and _hashlib.pyd DLLs. - -# THEORETICALLY, you can: -# * Unpack the latest SSL release one level above your main Python source -# directory. It is likely you will already find the zlib library and -# any other external packages there. -# * Install ActivePerl and ensure it is somewhere on your path. -# * Run this script from the PCBuild directory. -# -# it should configure and build SSL, then build the _ssl and _hashlib -# Python extensions without intervention. - -# Modified by Christian Heimes -# Now this script supports pre-generated makefiles and assembly files. -# Developers don't need an installation of Perl anymore to build Python. A svn -# checkout from our svn repository is enough. -# -# In Order to create the files in the case of an update you still need Perl. -# Run build_ssl in this order: -# python.exe build_ssl.py Release x64 -# python.exe build_ssl.py Release Win32 - -import os, sys, re, shutil - -# Find all "foo.exe" files on the PATH. -def find_all_on_path(filename, extras = None): - entries = os.environ["PATH"].split(os.pathsep) - ret = [] - for p in entries: - fname = os.path.abspath(os.path.join(p, filename)) - if os.path.isfile(fname) and fname not in ret: - ret.append(fname) - if extras: - for p in extras: - fname = os.path.abspath(os.path.join(p, filename)) - if os.path.isfile(fname) and fname not in ret: - ret.append(fname) - return ret - -# Find a suitable Perl installation for OpenSSL. -# cygwin perl does *not* work. ActivePerl does. -# Being a Perl dummy, the simplest way I can check is if the "Win32" package -# is available. -def find_working_perl(perls): - for perl in perls: - fh = os.popen(perl + ' -e "use Win32;"') - fh.read() - rc = fh.close() - if rc: - continue - return perl - print("Can not find a suitable PERL:") - if perls: - print(" the following perl interpreters were found:") - for p in perls: - print(" ", p) - print(" None of these versions appear suitable for building OpenSSL") - else: - print(" NO perl interpreters were found on this machine at all!") - print(" Please install ActivePerl and ensure it appears on your path") - return None - -# Locate the best SSL directory given a few roots to look into. -def find_best_ssl_dir(sources): - candidates = [] - for s in sources: - try: - # note: do not abspath s; the build will fail if any - # higher up directory name has spaces in it. - fnames = os.listdir(s) - except os.error: - fnames = [] - for fname in fnames: - fqn = os.path.join(s, fname) - if os.path.isdir(fqn) and fname.startswith("openssl-"): - candidates.append(fqn) - # Now we have all the candidates, locate the best. - best_parts = [] - best_name = None - for c in candidates: - parts = re.split("[.-]", os.path.basename(c))[1:] - # eg - openssl-0.9.7-beta1 - ignore all "beta" or any other qualifiers - if len(parts) >= 4: - continue - if parts > best_parts: - best_parts = parts - best_name = c - if best_name is not None: - print("Found an SSL directory at '%s'" % (best_name,)) - else: - print("Could not find an SSL directory in '%s'" % (sources,)) - sys.stdout.flush() - return best_name - -def create_makefile64(makefile, m32): - """Create and fix makefile for 64bit - - Replace 32 with 64bit directories - """ - if not os.path.isfile(m32): - return - with open(m32) as fin: - with open(makefile, 'w') as fout: - for line in fin: - line = line.replace("=tmp32", "=tmp64") - line = line.replace("=out32", "=out64") - line = line.replace("=inc32", "=inc64") - # force 64 bit machine - line = line.replace("MKLIB=lib", "MKLIB=lib /MACHINE:X64") - line = line.replace("LFLAGS=", "LFLAGS=/MACHINE:X64 ") - # don't link against the lib on 64bit systems - line = line.replace("bufferoverflowu.lib", "") - fout.write(line) - os.unlink(m32) - -def fix_makefile(makefile): - """Fix some stuff in all makefiles - """ - if not os.path.isfile(makefile): - return - with open(makefile) as fin: - lines = fin.readlines() - with open(makefile, 'w') as fout: - for line in lines: - if line.startswith("PERL="): - continue - if line.startswith("CP="): - line = "CP=copy\n" - if line.startswith("MKDIR="): - line = "MKDIR=mkdir\n" - if line.startswith("CFLAG="): - line = line.strip() - for algo in ("RC5", "MDC2", "IDEA"): - noalgo = " -DOPENSSL_NO_%s" % algo - if noalgo not in line: - line = line + noalgo - line = line + '\n' - fout.write(line) - -def run_configure(configure, do_script): - print("perl Configure "+configure) - os.system("perl Configure "+configure) - print(do_script) - os.system(do_script) - -def main(): - build_all = "-a" in sys.argv - if sys.argv[1] == "Release": - debug = False - elif sys.argv[1] == "Debug": - debug = True - else: - raise ValueError(str(sys.argv)) - - if sys.argv[2] == "Win32": - arch = "x86" - configure = "VC-WIN32" - do_script = "ms\\do_nasm" - makefile="ms\\nt.mak" - m32 = makefile - elif sys.argv[2] == "x64": - arch="amd64" - configure = "VC-WIN64A" - do_script = "ms\\do_win64a" - makefile = "ms\\nt64.mak" - m32 = makefile.replace('64', '') - #os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON" - else: - raise ValueError(str(sys.argv)) - - make_flags = "" - if build_all: - make_flags = "-a" - # perl should be on the path, but we also look in "\perl" and "c:\\perl" - # as "well known" locations - perls = find_all_on_path("perl.exe", ["\\perl\\bin", "C:\\perl\\bin"]) - perl = find_working_perl(perls) - if perl is None: - print("No Perl installation was found. Existing Makefiles are used.") - - print("Found a working perl at '%s'" % (perl,)) - sys.stdout.flush() - # Look for SSL 2 levels up from pcbuild - ie, same place zlib etc all live. - ssl_dir = find_best_ssl_dir(("..\\..",)) - if ssl_dir is None: - sys.exit(1) - - old_cd = os.getcwd() - try: - os.chdir(ssl_dir) - # rebuild makefile when we do the role over from 32 to 64 build - if arch == "amd64" and os.path.isfile(m32) and not os.path.isfile(makefile): - os.unlink(m32) - - # If the ssl makefiles do not exist, we invoke Perl to generate them. - # Due to a bug in this script, the makefile sometimes ended up empty - # Force a regeneration if it is. - if not os.path.isfile(makefile) or os.path.getsize(makefile)==0: - if perl is None: - print("Perl is required to build the makefiles!") - sys.exit(1) - - print("Creating the makefiles...") - sys.stdout.flush() - # Put our working Perl at the front of our path - os.environ["PATH"] = os.path.dirname(perl) + \ - os.pathsep + \ - os.environ["PATH"] - run_configure(configure, do_script) - if debug: - print("OpenSSL debug builds aren't supported.") - #if arch=="x86" and debug: - # # the do_masm script in openssl doesn't generate a debug - # # build makefile so we generate it here: - # os.system("perl util\mk1mf.pl debug "+configure+" >"+makefile) - - if arch == "amd64": - create_makefile64(makefile, m32) - fix_makefile(makefile) - shutil.copy(r"crypto\buildinf.h", r"crypto\buildinf_%s.h" % arch) - shutil.copy(r"crypto\opensslconf.h", r"crypto\opensslconf_%s.h" % arch) - - # Now run make. - if arch == "amd64": - rc = os.system(r"ml64 -c -Foms\uptable.obj ms\uptable.asm") - if rc: - print("ml64 assembler has failed.") - sys.exit(rc) - - shutil.copy(r"crypto\buildinf_%s.h" % arch, r"crypto\buildinf.h") - shutil.copy(r"crypto\opensslconf_%s.h" % arch, r"crypto\opensslconf.h") - - #makeCommand = "nmake /nologo PERL=\"%s\" -f \"%s\"" %(perl, makefile) - makeCommand = "nmake /nologo -f \"%s\"" % makefile - print("Executing ssl makefiles:", makeCommand) - sys.stdout.flush() - rc = os.system(makeCommand) - if rc: - print("Executing "+makefile+" failed") - print(rc) - sys.exit(rc) - finally: - os.chdir(old_cd) - sys.exit(rc) - -if __name__=='__main__': - main() diff --git a/PCbuild9/bz2.vcproj b/PCbuild9/bz2.vcproj deleted file mode 100644 index 2c16eb0cbb5..00000000000 --- a/PCbuild9/bz2.vcproj +++ /dev/null @@ -1,545 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/env.bat b/PCbuild9/env.bat deleted file mode 100644 index 638b16c1064..00000000000 --- a/PCbuild9/env.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -set VS9=%ProgramFiles%\Microsoft Visual Studio 9.0 -echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64 -echo. -call "%VS9%\VC\vcvarsall.bat" %1 diff --git a/PCbuild9/make_buildinfo.vcproj b/PCbuild9/make_buildinfo.vcproj deleted file mode 100644 index c42229c1a0a..00000000000 --- a/PCbuild9/make_buildinfo.vcproj +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/make_versioninfo.vcproj b/PCbuild9/make_versioninfo.vcproj deleted file mode 100644 index dcb922bf1e8..00000000000 --- a/PCbuild9/make_versioninfo.vcproj +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/pcbuild.sln b/PCbuild9/pcbuild.sln deleted file mode 100644 index d81c3b43d4e..00000000000 --- a/PCbuild9/pcbuild.sln +++ /dev/null @@ -1,461 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} = {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_versioninfo", "make_versioninfo.vcproj", "{F0E0541E-F17D-430B-97C4-93ADF0DD284E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" - ProjectSection(ProjectDependencies) = postProject - {F0E0541E-F17D-430B-97C4-93ADF0DD284E} = {F0E0541E-F17D-430B-97C4-93ADF0DD284E} - {C73F0EC1-358B-4177-940F-0846AC8B04CD} = {C73F0EC1-358B-4177-940F-0846AC8B04CD} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" - ProjectSection(SolutionItems) = preProject - ..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c - readme.txt = readme.txt - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bsddb", "_bsddb.vcproj", "{B4D38F3F-68FB-42EC-A45D-E00657BB3627}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes", "_ctypes.vcproj", "{0E9791DB-593A-465F-98BC-681011311618}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ctypes_test", "_ctypes_test.vcproj", "{9EC7190A-249F-4180-A900-548FDCF3055F}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_elementtree", "_elementtree.vcproj", "{17E1E049-C309-4D79-843F-AE483C264AEA}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_msi", "_msi.vcproj", "{31FFC478-7B4A-43E8-9954-8D03E2187E9C}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcproj", "{13CECB97-4119-4316-9D42-8534019A5A44}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}" - ProjectSection(ProjectDependencies) = postProject - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} - {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bz2", "bz2.vcproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" - ProjectSection(ProjectDependencies) = postProject - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} = {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - PGInstrument|Win32 = PGInstrument|Win32 - PGInstrument|x64 = PGInstrument|x64 - PGUpdate|Win32 = PGUpdate|Win32 - PGUpdate|x64 = PGUpdate|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|Win32.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.ActiveCfg = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug|x64.Build.0 = Debug|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGInstrument|x64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.PGUpdate|x64.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|Win32.Build.0 = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.ActiveCfg = Release|Win32 - {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release|x64.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.ActiveCfg = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|Win32.Build.0 = Debug|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.ActiveCfg = Debug|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug|x64.Build.0 = Debug|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.ActiveCfg = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|Win32.Build.0 = Release|Win32 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.ActiveCfg = Release|x64 - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release|x64.Build.0 = Release|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.ActiveCfg = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|Win32.Build.0 = Debug|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.ActiveCfg = Debug|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug|x64.Build.0 = Debug|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.ActiveCfg = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|Win32.Build.0 = Release|Win32 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.ActiveCfg = Release|x64 - {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release|x64.Build.0 = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.ActiveCfg = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|Win32.Build.0 = Debug|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.ActiveCfg = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug|x64.Build.0 = Debug|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.ActiveCfg = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64 - {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64 - {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGInstrument|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.PGUpdate|x64.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|Win32.Build.0 = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.ActiveCfg = Release|Win32 - {C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release|x64.Build.0 = Release|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.ActiveCfg = Debug|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|Win32.Build.0 = Debug|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.ActiveCfg = Debug|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Debug|x64.Build.0 = Debug|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.ActiveCfg = Release|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|Win32.Build.0 = Release|Win32 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.ActiveCfg = Release|x64 - {28B5D777-DDF2-4B6B-B34F-31D938813856}.Release|x64.Build.0 = Release|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.ActiveCfg = Debug|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|Win32.Build.0 = Debug|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.ActiveCfg = Debug|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Debug|x64.Build.0 = Debug|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.ActiveCfg = Release|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|Win32.Build.0 = Release|Win32 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.ActiveCfg = Release|x64 - {B4D38F3F-68FB-42EC-A45D-E00657BB3627}.Release|x64.Build.0 = Release|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|Win32.Build.0 = Debug|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.ActiveCfg = Debug|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Debug|x64.Build.0 = Debug|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {0E9791DB-593A-465F-98BC-681011311618}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.ActiveCfg = Release|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Release|Win32.Build.0 = Release|Win32 - {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.ActiveCfg = Release|x64 - {0E9791DB-593A-465F-98BC-681011311618}.Release|x64.Build.0 = Release|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|Win32.Build.0 = Debug|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.ActiveCfg = Debug|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Debug|x64.Build.0 = Debug|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.ActiveCfg = Release|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|Win32.Build.0 = Release|Win32 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.ActiveCfg = Release|x64 - {9EC7190A-249F-4180-A900-548FDCF3055F}.Release|x64.Build.0 = Release|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.ActiveCfg = Debug|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|Win32.Build.0 = Debug|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.ActiveCfg = Debug|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Debug|x64.Build.0 = Debug|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.ActiveCfg = Release|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|Win32.Build.0 = Release|Win32 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.ActiveCfg = Release|x64 - {17E1E049-C309-4D79-843F-AE483C264AEA}.Release|x64.Build.0 = Release|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.ActiveCfg = Debug|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|Win32.Build.0 = Debug|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.ActiveCfg = Debug|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Debug|x64.Build.0 = Debug|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.ActiveCfg = Release|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|Win32.Build.0 = Release|Win32 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.ActiveCfg = Release|x64 - {31FFC478-7B4A-43E8-9954-8D03E2187E9C}.Release|x64.Build.0 = Release|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.ActiveCfg = Debug|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|Win32.Build.0 = Debug|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.ActiveCfg = Debug|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Debug|x64.Build.0 = Debug|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.ActiveCfg = Release|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|Win32.Build.0 = Release|Win32 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.ActiveCfg = Release|x64 - {86937F53-C189-40EF-8CE8-8759D8E7D480}.Release|x64.Build.0 = Release|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.ActiveCfg = Debug|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|Win32.Build.0 = Debug|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.ActiveCfg = Debug|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Debug|x64.Build.0 = Debug|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.ActiveCfg = Release|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|Win32.Build.0 = Release|Win32 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.ActiveCfg = Release|x64 - {13CECB97-4119-4316-9D42-8534019A5A44}.Release|x64.Build.0 = Release|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.ActiveCfg = Debug|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|Win32.Build.0 = Debug|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.ActiveCfg = Debug|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Debug|x64.Build.0 = Debug|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.ActiveCfg = Release|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|Win32.Build.0 = Release|Win32 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.ActiveCfg = Release|x64 - {C6E20F84-3247-4AD6-B051-B073268F73BA}.Release|x64.Build.0 = Release|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.ActiveCfg = Debug|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|Win32.Build.0 = Debug|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.ActiveCfg = Debug|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Debug|x64.Build.0 = Debug|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.ActiveCfg = Release|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64 - {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.Build.0 = Debug|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.ActiveCfg = Release|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|Win32.Build.0 = Release|Win32 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.ActiveCfg = Release|x64 - {4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Release|x64.Build.0 = Release|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.ActiveCfg = Debug|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|Win32.Build.0 = Debug|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.ActiveCfg = Debug|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Debug|x64.Build.0 = Debug|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.ActiveCfg = Release|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|Win32.Build.0 = Release|Win32 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.ActiveCfg = Release|x64 - {73FCD2BD-F133-46B7-8EC1-144CD82A59D5}.Release|x64.Build.0 = Release|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.ActiveCfg = Debug|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|Win32.Build.0 = Debug|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.ActiveCfg = Debug|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Debug|x64.Build.0 = Debug|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.ActiveCfg = Release|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|Win32.Build.0 = Release|Win32 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.ActiveCfg = Release|x64 - {18CAE28C-B454-46C1-87A0-493D91D97F03}.Release|x64.Build.0 = Release|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.ActiveCfg = Debug|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|Win32.Build.0 = Debug|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.ActiveCfg = Debug|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Debug|x64.Build.0 = Debug|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.ActiveCfg = Release|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|Win32.Build.0 = Release|Win32 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.ActiveCfg = Release|x64 - {ECC7CEAC-A5E5-458E-BB9E-2413CC847881}.Release|x64.Build.0 = Release|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.ActiveCfg = Debug|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|Win32.Build.0 = Debug|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.ActiveCfg = Debug|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Debug|x64.Build.0 = Debug|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGInstrument|x64.Build.0 = PGInstrument|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.PGUpdate|x64.Build.0 = PGUpdate|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.ActiveCfg = Release|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64 - {D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PCbuild9/pyexpat.vcproj b/PCbuild9/pyexpat.vcproj deleted file mode 100644 index 2d2cd9d1eaf..00000000000 --- a/PCbuild9/pyexpat.vcproj +++ /dev/null @@ -1,553 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/python.vcproj b/PCbuild9/python.vcproj deleted file mode 100644 index 17b29a20788..00000000000 --- a/PCbuild9/python.vcproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/pythoncore.vcproj b/PCbuild9/pythoncore.vcproj deleted file mode 100644 index b26307fe526..00000000000 --- a/PCbuild9/pythoncore.vcproj +++ /dev/null @@ -1,1773 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/pythonw.vcproj b/PCbuild9/pythonw.vcproj deleted file mode 100644 index add46842074..00000000000 --- a/PCbuild9/pythonw.vcproj +++ /dev/null @@ -1,618 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/readme.txt b/PCbuild9/readme.txt deleted file mode 100644 index ef3b97da884..00000000000 --- a/PCbuild9/readme.txt +++ /dev/null @@ -1,334 +0,0 @@ -Building Python using VC++ 9.0 ------------------------------- -This directory is used to build Python for Win32 platforms, e.g. Windows -2000, XP and Vista. It requires Microsoft Visual C++ 9.0 -(a.k.a. Visual Studio .NET 2008). -(For other Windows platforms and compilers, see ../PC/readme.txt.) - -All you need to do is open the workspace "pcbuild.sln" in Visual Studio, -select the desired combination of configuration and platform and eventually -build the solution. Unless you are going to debug a problem in the core or -you are going to create an optimized build you want to select "Release" as -configuration. - -The PCbuild9 directory is compatible with all versions of Visual Studio from -VS C++ Express Edition over the standard edition up to the professional -edition. However the express edition does support features like solution -folders or profile guided optimization (PGO). The missing bits and pieces -won't stop you from building Python. - -The solution is configured to build the projects in the correct order. "Build -Solution" or F6 takes care of dependencies except for x64 builds. To make -cross compiling x64 builds on a 32bit OS possible the x64 builds require a -32bit version of Python. - - -NOTE: - You probably don't want to build most of the other subprojects, unless - you're building an entire Python distribution from scratch, or - specifically making changes to the subsystems they implement, or are - running a Python core buildbot test slave; see SUBPROJECTS below) - -When using the Debug setting, the output files have a _d added to -their name: python30_d.dll, python_d.exe, parser_d.pyd, and so on. - -The 32bit builds end up in the solution folder PCbuild9 while the x64 builds -land in the amd64 subfolder. The PGI and PGO builds for profile guided -optimization end up in their own folders, too. - -SUBPROJECTS ------------ -These subprojects should build out of the box. Subprojects other than the -main ones (pythoncore, python, pythonw) generally build a DLL (renamed to -.pyd) from a specific module so that users don't have to load the code -supporting that module unless they import the module. - -pythoncore - .dll and .lib -python - .exe -pythonw - pythonw.exe, a variant of python.exe that doesn't pop up a DOS box -_socket - socketmodule.c -_testcapi - tests of the Python C API, run via Lib/test/test_capi.py, and - implemented by module Modules/_testcapimodule.c -pyexpat - Python wrapper for accelerated XML parsing, which incorporates stable - code from the Expat project: http://sourceforge.net/projects/expat/ -select - selectmodule.c -unicodedata - large tables of Unicode data -winsound - play sounds (typically .wav files) under Windows - -The following subprojects will generally NOT build out of the box. They -wrap code Python doesn't control, and you'll need to download the base -packages first and unpack them into siblings of PCbuilds's parent -directory; for example, if your PCbuild9 is ..\dist\py3k\PCbuild9\, -unpack into new subdirectories of ..\dist\. - -_tkinter - Python wrapper for the Tk windowing system. Requires building - Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.16. - - NOTE: The 64 build builds must land in tcltk64 instead of tcltk. - - Get source - ---------- - In the dist directory, run - svn export http://svn.python.org/projects/external/tcl8.4.16 - svn export http://svn.python.org/projects/external/tk8.4.16 - svn export http://svn.python.org/projects/external/tix-8.4.0 - - Build with build_tkinter.py - --------------------------- - The PCbuild9 directory contains a Python script which automates all - steps. Run the script in a Visual Studio 2009 command prompt with - - python build_tkinter.py Win32 - - Use x64 instead of Win32 for the x64 platform. - - Build Tcl first - --------------- - Use "Start -> All Programs -> Microsoft Visual Studio 2008 - -> Visual Studio Tools -> Visual Studio 2008 Command Prompt" - to get a shell window with the correct environment settings - cd dist\tcl8.4.16\win - nmake -f makefile.vc - nmake -f makefile.vc INSTALLDIR=..\..\tcltk install - - XXX Should we compile with OPTS=threads? - - Optional: run tests, via - nmake -f makefile.vc test - - On WinXP Pro, wholly up to date as of 30-Aug-2004: - all.tcl: Total 10678 Passed 9969 Skipped 709 Failed 0 - Sourced 129 Test Files. - - Build Tk - -------- - cd dist\tk8.4.16\win - nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 - nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 INSTALLDIR=..\..\tcltk install - - XXX Should we compile with OPTS=threads? - - XXX Our installer copies a lot of stuff out of the Tcl/Tk install - XXX directory. Is all of that really needed for Python use of Tcl/Tk? - - Optional: run tests, via - nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 test - - On WinXP Pro, wholly up to date as of 30-Aug-2004: - all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13 - Sourced 91 Test Files. - Files with failing tests: canvImg.test scrollbar.test textWind.test winWm.test - - Built Tix - --------- - cd dist\tix-8.4.0\win - nmake -f python9.mak - nmake -f python9.mak install - -bz2 - Python wrapper for the libbz2 compression library. Homepage - http://sources.redhat.com/bzip2/ - Download the source from the python.org copy into the dist - directory: - - svn export http://svn.python.org/projects/external/bzip2-1.0.3 - - A custom pre-link step in the bz2 project settings should manage to - build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is - linked in PCbuild9\. - However, the bz2 project is not smart enough to remove anything under - bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib - you need to clean up bzip2-1.0.3\ by hand. - - All of this managed to build libbz2.lib in - bzip2-1.0.3\$platform-$configuration\, which the Python project links in. - - -_bsddb - To use the version of bsddb that Python is built with by default, invoke - (in the dist directory) - - svn export http://svn.python.org/projects/external/db-4.4.20 - - Next open the solution file db-4.4.20\build_win32\Berkeley_DB.sln with - Visual Studio and convert the projects to the new format. The standard - and professional version of VS 2008 builds the necessary libraries - in a pre-link step of _bsddb. However the express edition is missing - some pieces and you have to build the libs yourself. - - The _bsddb subprojects depends only on the db_static project of - Berkeley DB. You have to choose either "Release", "Release AMD64", "Debug" - or "Debug AMD64" as configuration. - - Alternatively, if you want to start with the original sources, - go to Sleepycat's download page: - http://www.sleepycat.com/downloads/releasehistorybdb.html - - and download version 4.4.20. - - With or without strong cryptography? You can choose either with or - without strong cryptography, as per the instructions below. By - default, Python is built and distributed WITHOUT strong crypto. - - Unpack the sources; if you downloaded the non-crypto version, rename - the directory from db-4.4.20.NC to db-4.4.20. - - Now apply any patches that apply to your version. - - Open - db-4.4.20\docs\ref\build_win\intro.html - - and follow the "Windows->Building Berkeley DB with Visual C++ .NET" - instructions for building the Sleepycat - software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory. - Build the "db_static" project, for "Release" mode. - - To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py - is then enabled. Running in verbose mode may be helpful. - -_sqlite3 - Python wrapper for SQLite library. - - Get the source code through - - svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 - - To use the extension module in a Python build tree, copy sqlite3.dll into - the PCbuild folder. The source directory in svn also contains a .def file - from the binary release of sqlite3. - -_ssl - Python wrapper for the secure sockets library. - - Get the source code through - - svn export http://svn.python.org/projects/external/openssl-0.9.8g - - Alternatively, get the latest version from http://www.openssl.org. - You can (theoretically) use any version of OpenSSL you like - the - build process will automatically select the latest version. - - You must install the NASM assembler from - http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ - for x86 builds. Put nasmw.exe anywhere in your PATH. - - You can also install ActivePerl from - http://www.activestate.com/Products/ActivePerl/ - if you like to use the official sources instead of the files from - python's subversion repository. The svn version contains pre-build - makefiles and assembly files. - - The build process makes sure that no patented algorithms are included. - For now RC5, MDC2 and IDEA are excluded from the build. You may have - to manually remove $(OBJ_D)\i_*.obj from ms\nt.mak if the build process - complains about missing files or forbidden IDEA. Again the files provided - in the subversion repository are already fixed. - - The MSVC project simply invokes PCBuild/build_ssl.py to perform - the build. This Python script locates and builds your OpenSSL - installation, then invokes a simple makefile to build the final .pyd. - - build_ssl.py attempts to catch the most common errors (such as not - being able to find OpenSSL sources, or not being able to find a Perl - that works with OpenSSL) and give a reasonable error message. - If you have a problem that doesn't seem to be handled correctly - (eg, you know you have ActivePerl but we can't find it), please take - a peek at build_ssl.py and suggest patches. Note that build_ssl.py - should be able to be run directly from the command-line. - - build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do - this by hand. - -Building for Itanium --------------------- - -NOTE: -Official support for Itanium builds have been dropped from the build. Please -contact as and provide patches if you are interested in Itanium builds. - -The project files support a ReleaseItanium configuration which creates -Win64/Itanium binaries. For this to work, you need to install the Platform -SDK, in particular the 64-bit support. This includes an Itanium compiler -(future releases of the SDK likely include an AMD64 compiler as well). -In addition, you need the Visual Studio plugin for external C compilers, -from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to -locate the proper target compiler, and convert compiler options -accordingly. The project files require atleast version 0.9. - -Building for AMD64 ------------------- - -The build process for AMD64 / x64 is very similar to standard builds. You just -have to set x64 as platform. - -Building Python Using the free MS Toolkit Compiler --------------------------------------------------- - -Microsoft has withdrawn the free MS Toolkit Compiler, so this can no longer -be considered a supported option. Instead you can use the free VS C++ Express -Edition. - -Profile Guided Optimization ---------------------------- - -The solution has two configurations for PGO. The PGInstrument configuration -must be build first. The PGInstrument binaries are lniked against a profiling -library and contain extra debug information. The PGUpdate configuration takes the profiling data and generates optimized binaries. - -The build_pgo.bat script automates the creation of optimized binaries. It -creates the PGI files, runs the unit test suite or PyBench with the PGI -python and finally creates the optimized files. - -http://msdn2.microsoft.com/en-us/library/e7k32f4k(VS.90).aspx - -Static library --------------- - -The solution has no configuration for static libraries. However it is easy -it build a static library instead of a DLL. You simply have to set the -"Configuration Type" to "Static Library (.lib)" and alter the preprocessor -macro "Py_ENABLE_SHARED" to "Py_NO_ENABLE_SHARED". You may also have to -change the "Runtime Library" from "Multi-threaded DLL (/MD)" to -"Multi-threaded (/MT)". - -Visual Studio properties ------------------------- - -The PCbuild9 solution makes heavy use of Visual Studio property files -(*.vsprops). The properties can be viewed and altered in the Property -Manager (View -> Other Windows -> Property Manager). - - * debug (debug macro: _DEBUG) - * pginstrument (PGO) - * pgupdate (PGO) - +-- pginstrument - * pyd (python extension, release build) - +-- release - +-- pyproject - * pyd_d (python extension, debug build) - +-- debug - +-- pyproject - * pyproject (base settings for all projects, user macros like PyDllName) - * release (release macro: NDEBUG) - * x64 (AMD64 / x64 platform specific settings) - -The pyproject propertyfile defines _WIN32 and x64 defines _WIN64 and _M_X64 -although the macros are set by the compiler, too. The GUI doesn't always know -about the macros and confuse the user with false information. - -YOUR OWN EXTENSION DLLs ------------------------ - -If you want to create your own extension module DLL, there's an example -with easy-to-follow instructions in ../PC/example/; read the file -readme.txt there first. diff --git a/PCbuild9/select.vcproj b/PCbuild9/select.vcproj deleted file mode 100644 index b97cb4d1842..00000000000 --- a/PCbuild9/select.vcproj +++ /dev/null @@ -1,537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/unicodedata.vcproj b/PCbuild9/unicodedata.vcproj deleted file mode 100644 index 084161afca4..00000000000 --- a/PCbuild9/unicodedata.vcproj +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/w9xpopen.vcproj b/PCbuild9/w9xpopen.vcproj deleted file mode 100644 index 9fcff7b6464..00000000000 --- a/PCbuild9/w9xpopen.vcproj +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PCbuild9/winsound.vcproj b/PCbuild9/winsound.vcproj deleted file mode 100644 index b6da131eb13..00000000000 --- a/PCbuild9/winsound.vcproj +++ /dev/null @@ -1,523 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tools/buildbot/build-amd64.bat b/Tools/buildbot/build-amd64.bat index 88edd8d3032..cddd3dde6e4 100644 --- a/Tools/buildbot/build-amd64.bat +++ b/Tools/buildbot/build-amd64.bat @@ -3,4 +3,4 @@ setlocal cmd /c Tools\buildbot\external-amd64.bat call "%VS71COMNTOOLS%vsvars32.bat" REM cmd /q/c Tools\buildbot\kill_python.bat -devenv.com /build ReleaseAMD64 PCbuild\pcbuild.sln +devenv.com /build ReleaseAMD64 PC\VS7.1\pcbuild.sln diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat index e96323c5b9e..f64c2192ebd 100644 --- a/Tools/buildbot/build.bat +++ b/Tools/buildbot/build.bat @@ -2,4 +2,4 @@ cmd /c Tools\buildbot\external.bat call "%VS71COMNTOOLS%vsvars32.bat" cmd /q/c Tools\buildbot\kill_python.bat -devenv.com /useenv /build Debug PCbuild\pcbuild.sln +devenv.com /useenv /build Debug PC\VS7.1\pcbuild.sln diff --git a/Tools/buildbot/buildmsi.bat b/Tools/buildbot/buildmsi.bat index 8adea48e31b..c30faee8ba4 100644 --- a/Tools/buildbot/buildmsi.bat +++ b/Tools/buildbot/buildmsi.bat @@ -9,7 +9,7 @@ if not exist ..\db-4.4.20\build_win32\release\libdb44s.lib ( @rem build Python cmd /q/c Tools\buildbot\kill_python.bat -devenv.com /useenv /build Release PCbuild\pcbuild.sln +devenv.com /useenv /build Release PC\VS7.1\pcbuild.sln @rem build the documentation bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp' diff --git a/Tools/buildbot/clean-amd64.bat b/Tools/buildbot/clean-amd64.bat index 6e83bd9e506..585476a4856 100644 --- a/Tools/buildbot/clean-amd64.bat +++ b/Tools/buildbot/clean-amd64.bat @@ -1,6 +1,6 @@ @rem Used by the buildbot "clean" step. call "%VS71COMNTOOLS%vsvars32.bat" -cd PCbuild +cd PC\VS7.1 @echo Deleting .pyc/.pyo files ... del /s Lib\*.pyc Lib\*.pyo devenv.com /clean ReleaseAMD64 pcbuild.sln diff --git a/Tools/buildbot/clean.bat b/Tools/buildbot/clean.bat index df50aff61b0..7101b533d8f 100644 --- a/Tools/buildbot/clean.bat +++ b/Tools/buildbot/clean.bat @@ -1,6 +1,6 @@ @rem Used by the buildbot "clean" step. call "%VS71COMNTOOLS%vsvars32.bat" -cd PCbuild +cd PC\VS7.1 @echo Deleting .pyc/.pyo files ... del /s Lib\*.pyc Lib\*.pyo devenv.com /clean Release pcbuild.sln diff --git a/Tools/buildbot/kill_python.c b/Tools/buildbot/kill_python.c index 023ff2deffc..fd707da6d58 100644 --- a/Tools/buildbot/kill_python.c +++ b/Tools/buildbot/kill_python.c @@ -1,4 +1,4 @@ -/* This program looks for processes which have build\PCbuild\python.exe +/* This program looks for processes which have build\PC\VS7.1\python.exe in their path and terminates them. */ #include #include @@ -46,14 +46,14 @@ int main() /* Check if we are running a buildbot version of Python. On Windows, this will always be a debug build from the - PCbuild directory. build\\PCbuild\\python_d.exe + PC\VS7.1 directory. build\\PC\\VS7.1\\python_d.exe On Cygwin, the pathname is similar to other Unixes. Use \\build\\python.exe to ensure we don't match - PCbuild\\python.exe which could be a normal instance + PC\\VS7.1\\python.exe which could be a normal instance of Python running on vanilla Windows. */ - if ((strstr(path, "build\\pcbuild\\python_d.exe") != NULL) || + if ((strstr(path, "build\\pc\\vs7.1\\python_d.exe") != NULL) || (strstr(path, "\\build\\python.exe") != NULL)) { printf("Terminating %s (pid %d)\n", path, pids[i]); if (!TerminateProcess(hProcess, 1)) { diff --git a/Tools/buildbot/test-amd64.bat b/Tools/buildbot/test-amd64.bat index 6995ece5be9..9cb6968ecc5 100644 --- a/Tools/buildbot/test-amd64.bat +++ b/Tools/buildbot/test-amd64.bat @@ -1,3 +1,3 @@ @rem Used by the buildbot "test" step. -cd PCbuild +cd PC\VS7.1 call rt.bat -q -uall -rw diff --git a/Tools/buildbot/test.bat b/Tools/buildbot/test.bat index 51569d24e25..680ef98ea39 100644 --- a/Tools/buildbot/test.bat +++ b/Tools/buildbot/test.bat @@ -1,3 +1,3 @@ @rem Used by the buildbot "test" step. -cd PCbuild +cd PC\VS7.1 call rt.bat -d -q -uall -rw -n diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py index c8b4bf600a2..9de57b53fee 100644 --- a/Tools/msi/msi.py +++ b/Tools/msi/msi.py @@ -27,7 +27,7 @@ have_tcl = True # Where is sqlite3.dll located, relative to srcdir? sqlite_dir = "../sqlite-source-3.3.4" # path to PCbuild directory -PCBUILD="PCbuild" +PCBUILD="PC/VS7.1" #PCBUILD="PCbuild9" # msvcrt version MSVCR = "71" diff --git a/configure b/configure index 5ebd03347ff..786bcd29fce 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 59533 . +# From configure.in Revision: 59558 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 3.0. # @@ -1838,14 +1838,6 @@ cat >>confdefs.h <<\_ACEOF _ACEOF -# OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is -# also defined. This can be overridden by defining _BSD_SOURCE - -cat >>confdefs.h <<\_ACEOF -#define _BSD_SOURCE 1 -_ACEOF - - # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables # u_int on Irix 5.3. Defining _BSD_TYPES brings it back. @@ -2012,7 +2004,16 @@ case $ac_sys_system/$ac_sys_release in # even though select is a POSIX function. Reported by J. Ribbens. # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish. OpenBSD/2.* | OpenBSD/3.[0123456789] | OpenBSD/4.[0]) - define_xopen_source=no;; + define_xopen_source=no + # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is + # also defined. This can be overridden by defining _BSD_SOURCE + # As this has a different meaning on Linux, only define it on OpenBSD + +cat >>confdefs.h <<\_ACEOF +#define _BSD_SOURCE 1 +_ACEOF + + ;; # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by # Marc Recht diff --git a/configure.in b/configure.in index 05ab7afa084..9a1f915cb36 100644 --- a/configure.in +++ b/configure.in @@ -50,10 +50,6 @@ AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features] # them. AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features]) -# OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is -# also defined. This can be overridden by defining _BSD_SOURCE -AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features]) - # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables # u_int on Irix 5.3. Defining _BSD_TYPES brings it back. AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int]) @@ -206,7 +202,12 @@ case $ac_sys_system/$ac_sys_release in # even though select is a POSIX function. Reported by J. Ribbens. # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish. OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0@:>@) - define_xopen_source=no;; + define_xopen_source=no + # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is + # also defined. This can be overridden by defining _BSD_SOURCE + # As this has a different meaning on Linux, only define it on OpenBSD + AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features]) + ;; # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by # Marc Recht