diff --git a/pep-0229.txt b/pep-0229.txt index 49e8b5ed5..2dad28880 100644 --- a/pep-0229.txt +++ b/pep-0229.txt @@ -52,17 +52,41 @@ Proposal Implementation - Patch #102588 on SourceForge will contain the proposed patch. - As of Dec. 1, the patch does the following: + Patch #102588 on SourceForge contains the proposed patch. + Currently the patch tries to be conservative and to change as few + files as possible, in order to simplify backing out the patch. + For example, no attempt is made to rip out the existing build + mechanisms. Such simplifications can wait for later in the beta + cycle, when we're certain the patch will be left in, or they can + wait for Python 2.2. + + The patch makes the following changes: - * Removes the use of makesetup in building the interpreter. - * Hard-codes the presence of the strop, posix, and _sre modules. - * Adds an empty top-level setup.py file. + * Makes some required changes to distutils/sysconfig (these will + be checked in separately) - Still to be done: + * In the top-level Makefile.in, the "sharedmods" target simply + runs "./python setup.py build", and "sharedinstall" runs + "./python setup.py install". The "clobber" target also deletes + the build/ subdirectory where Distutils puts its output. - * Write the top-level setup.py - * Handle a few tricky bits such as the signal module. + * Modules/Setup.config.in only contains entries for the gc and thread + modules; the readline, curses, and db modules are removed because + it's now setup.py's job to handle them. + + * Modules/Setup.dist now contains entries for only 3 modules -- + _sre, posix, and strop. + + * The configure script builds setup.cfg from setup.cfg.in. This + is needed for two reasons: to make building in subdirectories + work, and to get the configured installation prefix. + + * Adds setup.py to the top directory of the source tree. setup.py + is the largest piece of the puzzle, though not the most + complicated. setup.py contains a subclass of the BuildExt + class, and extends it with a detect_modules() method that does + the work of figuring out when modules can be compiled, and adding + them to the 'exts' list. Unresolved Issues @@ -76,8 +100,8 @@ Unresolved Issues binary? [Answer: building a Python binary with the Distutils should be - feasible, though no one has implemented it yet. This will need to - be done, though the main setup.py will probably need to implement + feasible, though no one has implemented it yet. This should be + done, though the main setup.py will probably need to implement its own BuildExt subclass anyway.] makesetup and the other contents of $(LIBPL)/config need to be