[Python-checkins] CVS: python/dist/src PLAN.txt,1.6,1.7
Guido van Rossum
gvanrossum@users.sourceforge.net
Thu, 30 Aug 2001 14:18:06 -0700
Update of /cvsroot/python/python/dist/src
In directory usw-pr-cvs1:/tmp/cvs-serv15776
Modified Files:
PLAN.txt
Log Message:
Group some projects into "Done" and "To do". Get rid of Tim's merge
scratchpad -- the merge is long behind us.
Index: PLAN.txt
===================================================================
RCS file: /cvsroot/python/python/dist/src/PLAN.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** PLAN.txt 2001/08/09 20:25:58 1.6
--- PLAN.txt 2001/08/30 21:18:04 1.7
***************
*** 2,11 ****
****************************
! Tasks:
!
! Do binary operators properly. nb_add should try to call self.__add__
! and other.__radd__. I think I'll exclude base types that define any
! binary operator without setting the CHECKTYPES flag. *** This is
! done, AFAICT. Even supports __truediv__ and __floordiv__. ***
Fix comparisons. There's some nasty stuff here: when two types are
--- 2,7 ----
****************************
! Still to do
! -----------
Fix comparisons. There's some nasty stuff here: when two types are
***************
*** 14,17 ****
--- 10,39 ----
base type that defines a comparison.
+ Check for conflicts between base classes. I fear that the rules used
+ to decide whether multiple bases have conflicting instance variables
+ aren't strict enough. I think that sometimes two different classes
+ adding __dict__ may be incompatible after all.
+
+ Check for order conflicts. Suppose there are two base classes X and
+ Y. Suppose class B derives from X and Y, and class C from Y and X (in
+ that order). Now suppose class D derives from B and C. In which
+ order should the base classes X and Y be searched? This is an order
+ conflict, and should be disallowed; currently the test for this is not
+ implemented.
+
+ Allow __class__ assignment.
+
+ Make __dynamic__ the default.
+
+ Add __del__ handlers.
+
+ Done (mostly)
+ -------------
+
+ Do binary operators properly. nb_add should try to call self.__add__
+ and other.__radd__. I think I'll exclude base types that define any
+ binary operator without setting the CHECKTYPES flag. *** This is
+ done, AFAICT. Even supports __truediv__ and __floordiv__. ***
+
Fix subtype_dealloc(). This currently searches through the list of
base types until it finds a type whose tp_dealloc is not
***************
*** 33,48 ****
called where PyType_IsSubtype() would be more appropriate. ***
- Check for conflicts between base classes. I fear that the rules used
- to decide whether multiple bases have conflicting instance variables
- aren't strict enough. I think that sometimes two different classes
- adding __dict__ may be incompatible after all.
-
- Check for order conflicts. Suppose there are two base classes X and
- Y. Suppose class B derives from X and Y, and class C from Y and X (in
- that order). Now suppose class D derives from B and C. In which
- order should the base classes X and Y be searched? This is an order
- conflict, and should be disallowed; currently the test for this is not
- implemented.
-
Clean up the GC interface. Currently, tp_basicsize includes the GC
head size iff tp_flags includes the GC flag bit. This makes object
--- 55,58 ----
***************
*** 55,59 ****
different flag bit). *** Tim proposed a better idea: macros to access
tp_basicsize while hiding the nastiness. This is done now, so I think
! the rest of this task needn't be done. ***
Make the __dict__ of types declared with Python class statements
--- 65,70 ----
different flag bit). *** Tim proposed a better idea: macros to access
tp_basicsize while hiding the nastiness. This is done now, so I think
! the rest of this task needn't be done. *** *** Neil checked in a
! much improved version of his idea, and it's all squared away. ***
Make the __dict__ of types declared with Python class statements
***************
*** 110,121 ****
**************************************
! Tasks:
!
! Make more (most?) built-in types act as their own factory functions.
!
! Make more (most?) built-in types subtypable -- with or without
! overridable allocation. *** This includes descriptors! It should be
! possible to write descriptors in Python, so metaclasses can do clever
! things with them. ***
Exceptions should be types. This changes the rules, since now almost
--- 121,126 ----
**************************************
! Still to do
! -----------
Exceptions should be types. This changes the rules, since now almost
***************
*** 145,149 ****
--- 150,166 ----
parts.
+ Done (mostly)
+ -------------
+
+ Make more (most?) built-in types act as their own factory functions.
+ *** Done for all reasonable built-in types. ***
+
+ Make more (most?) built-in types subtypable -- with or without
+ overridable allocation. *** This includes descriptors! It should be
+ possible to write descriptors in Python, so metaclasses can do clever
+ things with them. *** *** Done for most reasonable built-in types,
+ except for descriptors ***
+
Project: making classes use the new machinery
*********************************************
***************
*** 155,159 ****
compatibility? This is underspecified because I haven't thought much
about it yet. Can we lose the use of PyInstance_Check() everywhere?
! I would hope so!
--- 172,177 ----
compatibility? This is underspecified because I haven't thought much
about it yet. Can we lose the use of PyInstance_Check() everywhere?
! I would hope so! *** I'm dropping this goal for now -- classic
! classes will be 99% unchanged. ***
***************
*** 277,463 ****
prototype implementation to test. Try to do this *before* casting
everything in stone!
-
- MERGE BEGIN ****************************************************************
- Merge details (this section is Tim's scratchpad, but should help a lot if
- he dies of frustration while wrestling with CVS <0.9 wink>).
- ----------------------------------------------------------------------------
- 2001-08-01 Merging descr-branch back into trunk.
-
- Tagged trunk about 22:05:
- cvs tag date2001-08-01 python
-
- Merged trunk delta into branch:
- cvs -q -z3 up -j date2001-07-30 -j date2001-08-01 descr
-
- No conflicts (! first time ever!) ... but problems with pythoncore.dsp.
- Resolved.
-
- Rebuilt from scratch; ran all tests; checked into branch about 22:40.
-
- Merged descr-branch back into trunk (SEE BELOW -- this specific way of
- doing it was a bad idea):
-
- cvs -q -z3 up -j descr-branch python
-
- 34 conflicts. Hmm! OK, looks like every file in the project with an
- embedded RCS Id is "a conflict". Others make no sense, e.g., a dozen
- conflicts in dictobject.c, sometimes enclosing identical(!) blobs of
- source code. And CVS remains utterly baffled by Python type object decls.
- Every line of ceval.c's generator code is in conflict blocks ... OK,
- there's no pattern or sense here, I'll just deal with it.
-
- Conflicts resolved; rebuilt from scratch; test_weakref fails. Didn't find
- an obvious reason and it was late, so committed it anyway. Tagged the
- trunk then with tag:
-
- after-descr-branch-merge
-
- Tracked the test_weakref failure to a botched conflict resolution in
- classobject.c; checked in a fix.
-
- LATER: The merge should have been done via:
-
- upd -j date2001-08-01 -j descr-branch python
-
- instead. This would have caused only one conflict, a baffler in
- bltinmodule.c. It would have avoided the classobject.c error I made.
- Luckily, except for that one, we got to the same place in the end anyway,
- apart from a few curious tabs-vs-spaces differences.
- ----------------------------------------------------------------------------
- 2001-07-30
-
- Doing this again while the expat and Windows installer changes are still
- fresh on my mind.
-
- Tagged trunk about 23:50 EDT on the 29th:
- cvs tag date2001-07-30 python
-
- Merged trunk delta into branch:
-
- cvs -q -z3 up -j date2001-07-28 -j date2001-07-30 descr
-
- 2 conflicts, resolved.
- ----------------------------------------------------------------------------
- 2001-07-28
-
- Tagged trunk about 00:31 EDT:
- cvs tag date2001-07-28 python
-
- Merged trunk delta into branch:
- cvs -q -z3 up -j date2001-07-21 -j date2001-07-28 descr
-
- 4 conflicts, all RCS Ids. Resolved.
- ----------------------------------------------------------------------------
- 2001-07-21
-
- Tagged trunk about 01:00 EDT:
- cvs tag date2001-07-21 python
-
- Merged trunk delta into branch:
- cvs -q -z3 up -j date2001-07-17b -j date2001-07-21 descr
-
- 4 conflicts, mostly RCS Id thingies. Resolved.
-
- Legit failure in new test_repr, because repr.py dispatches on the exact
- string returned by type(x). type(1L) and type('s') differ in descr-branch
- now, and repr.py didn't realize that, falling back to the "unknown type"
- case for longs and strings. Repaired descr-branch repr.py.
- ----------------------------------------------------------------------------
- 2001-07-19
-
- Removed the r22a1-branch tag (see next entry). Turns out Guido did add a
- r22a1 tag, so the r22a1-branch tag served no point anymore.
- ----------------------------------------------------------------------------
- 2001-07-18 2.2a1 releaase
-
- Immediately after the merge just below, I tagged descr-branch via
-
- cvs tag r22a1-branch descr
-
- Guido may or may not want to add another tag here (? maybe he wants to do
- some more Unix fiddling first).
- ----------------------------------------------------------------------------
- 2001-07-17 building 2.2a1 release, from descr-branch
-
- Tagged trunk about 22:00 EDT, like so:
- cvs tag date2001-07-17b python
-
- Merged trunk delta into branch via:
- cvs -q -z3 up -j date2001-07-17a -j date2001-07-17b descr
- ----------------------------------------------------------------------------
- 2001-07-17
-
- Tagged trunk about 00:05 EDT, like so:
- cvs tag date2001-07-17a python
-
- Merged trunk delta into branch via:
- cvs -q -z3 up -j date2001-07-16 -j date2001-07-17a descr
- ----------------------------------------------------------------------------
- 2001-07-16
-
- Tagged trunk about 15:20 EDT, like so:
- cvs tag date2001-07-16 python
-
- Guido then added all the other dist/ directories to descr-branch from that
- trunk tag.
-
- Tim then merged trunk delta into the branch via:
- cvs -q -z3 up -j date2001-07-15 -j date2001-07-16 descr
- ----------------------------------------------------------------------------
- 2001-07-15
-
- Tagged trunk about 15:44 EDT, like so:
- cvs tag date2001-07-15 python
-
- Merged trunk delta into branch via:
- cvs -q -z3 up -j date2001-07-13 -j date2001-07-15 descr
-
- Four files with conflicts, all artificial RCS Id & Revision thingies.
- Resolved and committed.
- ----------------------------------------------------------------------------
- 2001-07-13
-
- Tagged trunk about 22:13 EDT, like so:
- cvs tag date2001-07-13 python
-
- Merged trunk delta into branch via:
- cvs -q -z3 up -j date2001-07-06 -j date2001-07-13 descr
-
- Six(!) files with conflicts, mostly related to NeilS's generator gc patches.
- Unsure why, but CVS seems always to think there are conflicts whenever a
- line in a type object decl gets changed, and the conflict marking seems
- maximally confused in these cases. Anyway, since I reviewed those patches
- on the trunk, good thing I'm merging them, and darned glad it's still fresh
- on my mind.
-
- Resolved the conflicts, and committed the changes in a few hours total.
- ----------------------------------------------------------------------------
- 2001-07-07
-
- Merge of trunk tag date2001-07-06 into descr-branch, via
- cvs -q -z3 up -j date2001-07-06 mergedescr
- was committed on 2001-07-07.
-
- Merge issues:
-
- (all resolved -- GvR)
- ----------------------------------------------------------------------------
- 2001-07-06
-
- Tagged trunk a bit after midnight, like so:
-
- C:\Code>cvs tag date2001-07-06 python
- cvs server: Tagging python
- cvs server: Tagging python/dist
- cvs server: Tagging python/dist/src
- T python/dist/src/.cvsignore
- T python/dist/src/LICENSE
- T python/dist/src/Makefile.pre.in
- T python/dist/src/README
- ... [& about 3000 lines more] ...
-
- This is the first trunk snapshot to be merged into the descr-branch.
- Gave it a date instead of a goofy name because there's going to be more
- than one of these, and at least it's obvious which of two ISO dates comes
- earlier. These tags should go away after all merging is complete.
- MERGE END ******************************************************************
--- 295,296 ----