]> granicus.if.org Git - python/log
python
22 years agoFix markup and punctuation
Raymond Hettinger [Fri, 23 Aug 2002 18:10:54 +0000 (18:10 +0000)]
Fix markup and punctuation

22 years agoGot rid of the toy _Set class, in favor of sets.Set.
Tim Peters [Fri, 23 Aug 2002 17:55:54 +0000 (17:55 +0000)]
Got rid of the toy _Set class, in favor of sets.Set.

22 years agos/_as_Temporarily_Immutable/_as_temporarily_immutable/g, because the
Tim Peters [Fri, 23 Aug 2002 17:48:23 +0000 (17:48 +0000)]
s/_as_Temporarily_Immutable/_as_temporarily_immutable/g, because the
latter is what the code actually does.

22 years agopop(): An arbitrary element is removed, not a random element.
Tim Peters [Fri, 23 Aug 2002 17:45:43 +0000 (17:45 +0000)]
pop():  An arbitrary element is removed, not a random element.

22 years agoAdjust the markup in a few places so this will actually format.
Fred Drake [Fri, 23 Aug 2002 17:22:36 +0000 (17:22 +0000)]
Adjust the markup in a few places so this will actually format.
Remove the third column in the tables since it isn't used.

22 years agoAdd an entry for the sets module documentation.
Fred Drake [Fri, 23 Aug 2002 15:38:02 +0000 (15:38 +0000)]
Add an entry for the sets module documentation.
Move another entry so the boilerplate doesn't get mixed up with
document-specific content.

22 years agoLoad docs for sets.py
Raymond Hettinger [Fri, 23 Aug 2002 15:18:38 +0000 (15:18 +0000)]
Load docs for sets.py

22 years agoRH pointed out that discard(element) doesn't do the transformation on
Guido van Rossum [Fri, 23 Aug 2002 14:45:02 +0000 (14:45 +0000)]
RH pointed out that discard(element) doesn't do the transformation on
the element if necessary.  Fixed by calling self.remove(element).

22 years agoThe error messages in err_args() -- which is only called when the
Guido van Rossum [Fri, 23 Aug 2002 14:11:35 +0000 (14:11 +0000)]
The error messages in err_args() -- which is only called when the
required number of args is 0 or 1 -- were reversed.  Also change "1"
into "exactly one", the same words as used elsewhere for this
condition.

22 years agoAdded the standard MacOSX location for documentation inside a framework
Jack Jansen [Fri, 23 Aug 2002 08:40:42 +0000 (08:40 +0000)]
Added the standard MacOSX location for documentation inside a framework
to the list of places where pydoc looks for HTML documents.

22 years agoRewritten using the tokenize module, which gives us a real tokenizer
Guido van Rossum [Fri, 23 Aug 2002 01:36:01 +0000 (01:36 +0000)]
Rewritten using the tokenize module, which gives us a real tokenizer
rather than a number of approximating regular expressions.
Alas, it is 3-4 times slower.  Let that be a challenge for the
tokenize module.

22 years agoDon't build ConfigurePythonCarbon and ConfigurePythonClassic any longer,
Jack Jansen [Thu, 22 Aug 2002 23:37:00 +0000 (23:37 +0000)]
Don't build ConfigurePythonCarbon and ConfigurePythonClassic any longer,
classic Python is gone.

22 years agoFor MacPython-OS9 verbose is the default.
Jack Jansen [Thu, 22 Aug 2002 23:36:11 +0000 (23:36 +0000)]
For MacPython-OS9 verbose is the default.

22 years agoInterface to Apple Help Manager.
Jack Jansen [Thu, 22 Aug 2002 23:31:37 +0000 (23:31 +0000)]
Interface to Apple Help Manager.

22 years agoMoved CoreFoundation type support to bgen/macsupport.
Jack Jansen [Thu, 22 Aug 2002 23:30:49 +0000 (23:30 +0000)]
Moved CoreFoundation type support to bgen/macsupport.

22 years agoAdded PyDoc_STR's.
Jack Jansen [Thu, 22 Aug 2002 23:29:45 +0000 (23:29 +0000)]
Added PyDoc_STR's.

22 years agoTweak wordsep_re again: this time to recognize an em-dash with
Greg Ward [Thu, 22 Aug 2002 21:28:00 +0000 (21:28 +0000)]
Tweak wordsep_re again: this time to recognize an em-dash with
any non-whitespace characters adjacent, not just \w.

22 years agoTest an em-dash with adjacent punctuation.
Greg Ward [Thu, 22 Aug 2002 21:27:05 +0000 (21:27 +0000)]
Test an em-dash with adjacent punctuation.

22 years agoFactored out BaseTestCase.check_split() method -- use it wherever
Greg Ward [Thu, 22 Aug 2002 21:16:25 +0000 (21:16 +0000)]
Factored out BaseTestCase.check_split() method -- use it wherever
we need to test TextWrapper._split().

22 years agoTest _split() method in test_unix_options().
Greg Ward [Thu, 22 Aug 2002 21:12:54 +0000 (21:12 +0000)]
Test _split() method in test_unix_options().

22 years agoAdd test_unix_options() to WrapTestCase to test for SF bug #596434.
Greg Ward [Thu, 22 Aug 2002 21:10:07 +0000 (21:10 +0000)]
Add test_unix_options() to WrapTestCase to test for SF bug #596434.

22 years agoFix SF bug #596434: tweak wordsep_re so "--foo-bar" now splits
Greg Ward [Thu, 22 Aug 2002 21:04:21 +0000 (21:04 +0000)]
Fix SF bug #596434: tweak wordsep_re so "--foo-bar" now splits
into /--foo-/bar/ rather than /--/foo-/bar/.  Needed for Optik and
Docutils to handle Unix-style command-line options properly.

22 years agoStandardize behavior: no docstrings in test functions.
Guido van Rossum [Thu, 22 Aug 2002 20:22:16 +0000 (20:22 +0000)]
Standardize behavior: no docstrings in test functions.

22 years agoStandardize behavior: no docstrings in test functions. Also use
Guido van Rossum [Thu, 22 Aug 2002 20:21:30 +0000 (20:21 +0000)]
Standardize behavior: no docstrings in test functions.  Also use
unittest.makeSuite() rather than loader.loadTestsFromTestCase().

22 years agoStandardize behavior: no docstrings in test functions. Also strip
Guido van Rossum [Thu, 22 Aug 2002 20:13:47 +0000 (20:13 +0000)]
Standardize behavior: no docstrings in test functions.  Also strip
trailing whitespace.

22 years agoDocument that docstrings are verboten for test functions.
Guido van Rossum [Thu, 22 Aug 2002 20:08:14 +0000 (20:08 +0000)]
Document that docstrings are verboten for test functions.

Expand the example to show some actual test functions, and a setUp()
and tearDown() method.

22 years agoStandardize behavior: no docstrings in test functions. Also get rid
Guido van Rossum [Thu, 22 Aug 2002 20:02:03 +0000 (20:02 +0000)]
Standardize behavior: no docstrings in test functions.  Also get rid
of dummy_test_TemporaryFile class; when NamedTemporaryFile and
TemporaryFile are the same, simply don't add a test suite for
TemporaryFile.

22 years agoStandardize behavior: no docstrings in test functions; add a proper
Guido van Rossum [Thu, 22 Aug 2002 19:57:50 +0000 (19:57 +0000)]
Standardize behavior: no docstrings in test functions; add a proper
test_main() that creates a suite and runs it.  Don't mess with sys.path!!!

22 years agoAdd test_em_dash() to WrapTestCase to make sure that TextWrapper handles
Greg Ward [Thu, 22 Aug 2002 19:47:27 +0000 (19:47 +0000)]
Add test_em_dash() to WrapTestCase to make sure that TextWrapper handles
em-dashes -- like this -- properly.  (Also--like this.  Although this
usage may be incompatible with fixing bug #596434; we shall see.)

22 years agoStandardize behavior: no docstrings in test functions.
Guido van Rossum [Thu, 22 Aug 2002 19:45:32 +0000 (19:45 +0000)]
Standardize behavior: no docstrings in test functions.

22 years agoStandardize behavior: create a single suite merging all test cases.
Guido van Rossum [Thu, 22 Aug 2002 19:40:33 +0000 (19:40 +0000)]
Standardize behavior: create a single suite merging all test cases.

22 years agoStandardize behavior: no docstrings in test functions; create a single
Guido van Rossum [Thu, 22 Aug 2002 19:38:14 +0000 (19:38 +0000)]
Standardize behavior: no docstrings in test functions; create a single
suite merging all test cases.

22 years agoMade it more readable.
Guido van Rossum [Thu, 22 Aug 2002 19:18:56 +0000 (19:18 +0000)]
Made it more readable.

22 years agoFix peculiar (and ungrammatical) wording in an example program.
Greg Ward [Thu, 22 Aug 2002 19:15:35 +0000 (19:15 +0000)]
Fix peculiar (and ungrammatical) wording in an example program.

22 years agoSimplification/cleanup in IndentTestCases.
Greg Ward [Thu, 22 Aug 2002 19:06:45 +0000 (19:06 +0000)]
Simplification/cleanup in IndentTestCases.

22 years agoFactor LongWordTestCase out of WrapTestCase, and rename its methods
Greg Ward [Thu, 22 Aug 2002 19:02:37 +0000 (19:02 +0000)]
Factor LongWordTestCase out of WrapTestCase, and rename its methods
(tests) from test_funky_punc() to test_break_long() and
test_long_words() to test_nobreak_long().

22 years agoRename base test case class to (yawn) BaseTestCase.
Greg Ward [Thu, 22 Aug 2002 18:57:26 +0000 (18:57 +0000)]
Rename base test case class to (yawn) BaseTestCase.

22 years agoDitch the whole loop-over-subcases way of working. Add check_wrap() to
Greg Ward [Thu, 22 Aug 2002 18:55:38 +0000 (18:55 +0000)]
Ditch the whole loop-over-subcases way of working.  Add check_wrap() to
base class (WrapperTestCase) instead, and call it repeatedly in the
methods that used to have a loop-over-subcases.  Much simpler.

Rename perennial temp variable 't' to 'text'.

22 years agoSimplify and reformat the use of 'subcases' lists (and following
Greg Ward [Thu, 22 Aug 2002 18:45:02 +0000 (18:45 +0000)]
Simplify and reformat the use of 'subcases' lists (and following
for-loops) in test_simple(), test_wrap_short() test_hyphenated(), and
test_funky_punc().

22 years agoAdd comment header block.
Greg Ward [Thu, 22 Aug 2002 18:37:50 +0000 (18:37 +0000)]
Add comment header block.
Remove some useless comments (redundant, or info presumably available in
  PyUnit docs).

22 years agoConform to standards documented in README:
Greg Ward [Thu, 22 Aug 2002 18:35:49 +0000 (18:35 +0000)]
Conform to standards documented in README:
  *  lowercase test*() methods
  * define test_main() and use it instead of unittest.main()
Kill #! line.
Improve some test names and docstrings.

22 years agoTest script for the textwrap module. Kindly provided by Peter Hansen
Greg Ward [Thu, 22 Aug 2002 18:11:10 +0000 (18:11 +0000)]
Test script for the textwrap module.  Kindly provided by Peter Hansen
<peter@engcorp.com> based on a test script that's been kicking around my
home directory for a couple of months now and only saw the light of day
because I included it when I sent textwrap.py to python-dev for review.

22 years agoOn Windows, make sure SocketType is the same as socket. (SF bug
Guido van Rossum [Thu, 22 Aug 2002 17:31:16 +0000 (17:31 +0000)]
On Windows, make sure SocketType is the same as socket.  (SF bug
598097)

22 years agoChange the binary operators |, &, ^, - to return NotImplemented rather
Guido van Rossum [Thu, 22 Aug 2002 17:23:33 +0000 (17:23 +0000)]
Change the binary operators |, &, ^, - to return NotImplemented rather
than raising TypeError when the other argument is not a BaseSet.  This
made it necessary to separate the implementation of e.g. __or__ from
the union method; the latter should not return NotImplemented but
raise TypeError.  This is accomplished by making union(self, other)
return self|other, etc.; Python's binary operator machinery will raise
TypeError.

The idea behind this change is to allow other set implementations with
an incompatible internal structure; these can provide union (etc.) with
standard sets by implementing __ror__ etc.

I wish I could do this for comparisons too, but the default comparison
implementation allows comparing anything to anything else (returning
false); we don't want that (at least the test suite makes sure
e.g. Set()==42 raises TypeError).  That's probably fine; otherwise
other set implementations would be constrained to implementing a hash
that's compatible with ours.

22 years agoGive the section on PEP 263 a more meaningful title, so readers will
Fred Drake [Thu, 22 Aug 2002 16:51:08 +0000 (16:51 +0000)]
Give the section on PEP 263 a more meaningful title, so readers will
be able to locate this information without knowing the PEP number.

22 years agoAdd a note that apply() is needed since the extended call syntax is
Fred Drake [Thu, 22 Aug 2002 14:27:35 +0000 (14:27 +0000)]
Add a note that apply() is needed since the extended call syntax is
completely equivalent.

22 years agoFix grammatically inept comment.
Michael W. Hudson [Thu, 22 Aug 2002 13:36:11 +0000 (13:36 +0000)]
Fix grammatically inept comment.

22 years agoAdded a main() function and support to run this module as a script.
Fred Drake [Wed, 21 Aug 2002 20:56:21 +0000 (20:56 +0000)]
Added a main() function and support to run this module as a script.
Closes SF feature request #588768.

22 years agoRefactor: Remove some code that was obsoleted when this module was
Fred Drake [Wed, 21 Aug 2002 20:23:22 +0000 (20:23 +0000)]
Refactor:  Remove some code that was obsoleted when this module was
           changed to use universal newlines.

           Remove all imports from the compile() function; these are
           now done at the top of the module ("Python normal form"),
           and define a helper based on the platform instead of
           testing the platform in the compile() function.

22 years agoClarify that even though some of the relevant specifications define the
Fred Drake [Wed, 21 Aug 2002 19:24:21 +0000 (19:24 +0000)]
Clarify that even though some of the relevant specifications define the
order in which form variables should be encoded in a request, a CGI script
should not rely on that since a client may not conform to those specs, or
they may not be relevant to the request.
Closes SF bug #596866.

22 years agoNow that __init__ transforms set elements, we know that all of the
Raymond Hettinger [Wed, 21 Aug 2002 13:20:51 +0000 (13:20 +0000)]
Now that __init__ transforms set elements, we know that all of the
elements are hashable, so we can use dict.update() or dict.copy()
for a C speed Set.copy().

22 years agoAdd regression test for proper construction of sets of sets.
Raymond Hettinger [Wed, 21 Aug 2002 06:38:44 +0000 (06:38 +0000)]
Add regression test for proper construction of sets of sets.

22 years agoReplace all cases of "while 1" with "while True".
Raymond Hettinger [Wed, 21 Aug 2002 04:54:00 +0000 (04:54 +0000)]
Replace all cases of "while 1" with "while True".
Though slightly slower, has better clarity and teaching value.

22 years agoSped ._update() method by factoring try/except out of the inner loop.
Raymond Hettinger [Wed, 21 Aug 2002 04:12:03 +0000 (04:12 +0000)]
Sped ._update() method by factoring try/except out of the inner loop.

22 years agoOuch. The test suite *really* needs work!!!!! There were several
Guido van Rossum [Wed, 21 Aug 2002 03:20:44 +0000 (03:20 +0000)]
Ouch.  The test suite *really* needs work!!!!!  There were several
superficial errors and one deep one that aren't currently caught.  I'm
headed for bed after this checkin.

- Fixed several typos introduced by Raymond Hettinger (through
  cut-n-paste from my template): it's _as_temporarily_immutable, not
  _as_temporary_immutable, and moreover when the element is added, we
  should use _as_immutable.

- Made the seq argument to ImmutableSet.__init__ optional, so we can
  write ImmutableSet() to create an immutable empty set.

- Rename the seq argument to Set and ImmutableSet to iterable.

- Add a Set.__hash__ method that raises a TypeError.  We inherit a
  default __hash__ implementation from object, and we don't want that.
  We can then catch this in update(), so that
  e.g. s.update([Set([1])]) will transform the Set([1]) to
  ImmutableSet([1]).

- Added the dance to catch TypeError and try _as_immutable in the
  constructors too (by calling _update()).  This is needed so that
  Set([Set([1])]) is correctly interpreted as
  Set([ImmutableSet([1])]).  (I was puzzled by a side effect of this
  and the inherited __hash__ when comparing two sets of sets while
  testing different powerset implementations: the Set element passed
  to a Set constructor wasn't transformed to an ImmutableSet, and then
  the dictionary didn't believe the Set found in one dict it was the
  same as ImmutableSet in the other, because the hashes were
  different.)

- Refactored Set.update() and both __init__() methods; moved the body
  of update() into BaseSet as _update(), and call this from __init__()
  and update().

- Changed the NotImplementedError in BaseSet.__init__ to TypeError,
  both for consistency with basestring() and because we have to use
  TypeError when denying Set.__hash__.  Together those provide
  sufficient evidence that an unimplemented method needs to raise
  TypeError.

22 years agoAdd Raymond H to the list of authors; add some XXX comments about
Guido van Rossum [Wed, 21 Aug 2002 02:44:04 +0000 (02:44 +0000)]
Add Raymond H to the list of authors; add some XXX comments about
possible API improvements.

22 years agoFast size check for sub/super set tests
Raymond Hettinger [Wed, 21 Aug 2002 02:22:08 +0000 (02:22 +0000)]
Fast size check for sub/super set tests

22 years agoOptimize try/except ordering in sets.py.
Raymond Hettinger [Wed, 21 Aug 2002 01:35:29 +0000 (01:35 +0000)]
Optimize try/except ordering in sets.py.

Gains a 5:1 speed-up for membership testing by
handling the most common case first (the case
where the element is hashable).

Closes SF Patch 597444.

22 years agoMinor typo
Raymond Hettinger [Tue, 20 Aug 2002 23:34:01 +0000 (23:34 +0000)]
Minor typo

22 years agoRename popitem() to pop(). (An idea from SF patch 597444.)
Guido van Rossum [Tue, 20 Aug 2002 21:51:59 +0000 (21:51 +0000)]
Rename popitem() to pop().  (An idea from SF patch 597444.)

22 years agoMove __init__ from BaseSet into Set and ImmutableSet. This causes a
Guido van Rossum [Tue, 20 Aug 2002 21:38:37 +0000 (21:38 +0000)]
Move __init__ from BaseSet into Set and ImmutableSet.  This causes a
tiny amount of code duplication, but makes it possible to give BaseSet
an __init__ that raises an exception.

22 years agoTypo repair. Please include in any backports.
Guido van Rossum [Tue, 20 Aug 2002 20:07:10 +0000 (20:07 +0000)]
Typo repair.  Please include in any backports.

22 years agoAdd a note reminding the reader that sets are not sequences. I
Guido van Rossum [Tue, 20 Aug 2002 20:05:23 +0000 (20:05 +0000)]
Add a note reminding the reader that sets are not sequences.  I
received feedback that was based in the misunderstanding that sets
were sequences.

22 years agoSF patch 595846 by Brett Cannon: Update environ for CGIHTTPServer.py
Guido van Rossum [Tue, 20 Aug 2002 19:55:06 +0000 (19:55 +0000)]
SF patch 595846 by Brett Cannon: Update environ for CGIHTTPServer.py

This patch causes CGIHTTPServer to update os.environ regardless of how
it tries to handle calls (fork, popen*, etc.).

Backport bugfix candidate.

22 years agolong_format(), long_lshift(): Someone on c.l.py is trying to boost
Tim Peters [Tue, 20 Aug 2002 19:00:22 +0000 (19:00 +0000)]
long_format(), long_lshift():  Someone on c.l.py is trying to boost
SHIFT and MASK, and widen digit.  One problem is that code of the form

    digit << small_integer

implicitly assumes that the result fits in an int or unsigned int
(platform-dependent, but "int sized" in any case), since digit is
promoted "just" to int or unsigned via the usual integer promotions.
But if digit is typedef'ed as unsigned int, this loses information.
The cure for this is just to cast digit to twodigits first.

22 years agoFix some endcase bugs in unicode rfind()/rindex() and endswith().
Guido van Rossum [Tue, 20 Aug 2002 17:29:29 +0000 (17:29 +0000)]
Fix some endcase bugs in unicode rfind()/rindex() and endswith().
These were reported and fixed by Inyeol Lee in SF bug 595350.  The
endswith() bug was already fixed in 2.3, but this adds some more test
cases.

22 years agoComment typo repair.
Michael W. Hudson [Tue, 20 Aug 2002 15:43:16 +0000 (15:43 +0000)]
Comment typo repair.

22 years agoMy patch #597221. Use f_lasti more consistently.
Michael W. Hudson [Tue, 20 Aug 2002 15:19:14 +0000 (15:19 +0000)]
My patch #597221.  Use f_lasti more consistently.

22 years agoBump version number to 2.3
Barry Warsaw [Tue, 20 Aug 2002 14:51:34 +0000 (14:51 +0000)]
Bump version number to 2.3

22 years agoAdded tests for SF patch #597593, syntactically invalid Content-Type: headers.
Barry Warsaw [Tue, 20 Aug 2002 14:51:10 +0000 (14:51 +0000)]
Added tests for SF patch #597593, syntactically invalid Content-Type: headers.

22 years agoget_content_type(), get_content_maintype(), get_content_subtype(): RFC
Barry Warsaw [Tue, 20 Aug 2002 14:50:09 +0000 (14:50 +0000)]
get_content_type(), get_content_maintype(), get_content_subtype(): RFC
2045, section 5.2 states that if the Content-Type: header is
syntactically invalid, the default type should be text/plain.
Implement minimal sanity checking of the header -- it must have
exactly one slash in it.  This closes SF patch #597593 by Skip, but in
a different way.

Note that these methods used to raise ValueError for invalid ctypes,
but now they won't.

22 years ago_dispatch(): Use get_content_maintype() and get_content_subtype() to
Barry Warsaw [Tue, 20 Aug 2002 14:47:30 +0000 (14:47 +0000)]
_dispatch(): Use get_content_maintype() and get_content_subtype() to
get the MIME main and sub types, instead of getting the whole ctype
and splitting it here.   The two more specific methods now correctly
implement RFC 2045, section 5.2.

22 years agogetinstclassname(): Squash new compiler wng in assert (comparison of
Tim Peters [Tue, 20 Aug 2002 14:31:35 +0000 (14:31 +0000)]
getinstclassname():  Squash new compiler wng in assert (comparison of
signed vs unsigned).

22 years agoClarify the endpos argument to the rx.match() method.
Fred Drake [Tue, 20 Aug 2002 13:57:47 +0000 (13:57 +0000)]
Clarify the endpos argument to the rx.match() method.
Closes SF bug #597177.

22 years agotest_three_lines(): Test case reported by Andrew McNamara. Works in
Barry Warsaw [Tue, 20 Aug 2002 12:54:07 +0000 (12:54 +0000)]
test_three_lines(): Test case reported by Andrew McNamara.  Works in
email 2.2 but fails in email 1.0.

22 years agoCover the sets module.
Andrew M. Kuchling [Tue, 20 Aug 2002 01:34:06 +0000 (01:34 +0000)]
Cover the sets module.

(There's a link to PEP218; has PEP218 been updated to match the actual
module implementation?)

22 years agoCreate two subsections of the "Core Language Changes" section, because
Andrew M. Kuchling [Tue, 20 Aug 2002 00:54:36 +0000 (00:54 +0000)]
Create two subsections of the "Core Language Changes" section, because
   the list is getting awfully long
Mention Karatsuba multiplication and some other items

22 years agoAdd versionadded for operator.pow
Neal Norwitz [Mon, 19 Aug 2002 22:38:01 +0000 (22:38 +0000)]
Add versionadded for operator.pow

22 years agoExtend some comments on the order of values in the returns from
Fred Drake [Mon, 19 Aug 2002 21:58:58 +0000 (21:58 +0000)]
Extend some comments on the order of values in the returns from
dict.items/keys/values/iteritems/iterkeys/itervalues().

22 years agoSF patch 576101, by Oren Tirosh: alternative implementation of
Guido van Rossum [Mon, 19 Aug 2002 21:43:18 +0000 (21:43 +0000)]
SF patch 576101, by Oren Tirosh: alternative implementation of
interning.  I modified Oren's patch significantly, but the basic idea
and most of the implementation is unchanged.  Interned strings created
with PyString_InternInPlace() are now mortal, and you must keep a
reference to the resulting string around; use the new function
PyString_InternImmortal() to create immortal interned strings.

22 years agoAdd a warning comment to the LOAD_GLOBAL inline code.
Guido van Rossum [Mon, 19 Aug 2002 21:17:53 +0000 (21:17 +0000)]
Add a warning comment to the LOAD_GLOBAL inline code.

22 years agoAnother ugly inlining hack, expanding the two PyDict_GetItem() calls
Guido van Rossum [Mon, 19 Aug 2002 20:24:07 +0000 (20:24 +0000)]
Another ugly inlining hack, expanding the two PyDict_GetItem() calls
in LOAD_GLOBAL.  Besides saving a C function call, it saves checks
whether f_globals and f_builtins are dicts, and extracting and testing
the string object's hash code is done only once.  We bail out of the
inlining if the name is not exactly a string, or when its hash is -1;
because of interning, neither should ever happen.  I believe interning
guarantees that the hash code is set, and I believe that the 'names'
tuple of a code object always contains interned strings, but I'm not
assuming that -- I'm simply testing hash != -1.

On my home machine, this makes a pystone variant with new-style
classes and slots run at the same speed as classic pystone!  (With
new-style classes but without slots, it is still a lot slower.)

22 years agoCall me anal, but there was a particular phrase that was speading to
Guido van Rossum [Mon, 19 Aug 2002 19:26:42 +0000 (19:26 +0000)]
Call me anal, but there was a particular phrase that was speading to
comments everywhere that bugged me: /* Foo is inlined */ instead of
/* Inline Foo */.  Somehow the "is inlined" phrase always confused me
for half a second (thinking, "No it isn't" until I added the missing
"here").  The new phrase is hopefully unambiguous.

22 years agoAnother modest speedup in PyObject_GenericGetAttr(): inline the call
Guido van Rossum [Mon, 19 Aug 2002 19:22:50 +0000 (19:22 +0000)]
Another modest speedup in PyObject_GenericGetAttr(): inline the call
to _PyType_Lookup().

22 years agoMake PyDescr_IsData() a macro. It's too simple to be a function.
Guido van Rossum [Mon, 19 Aug 2002 18:45:37 +0000 (18:45 +0000)]
Make PyDescr_IsData() a macro.  It's too simple to be a function.
Should save 4% on slot lookups.

22 years agoCheck in my ultra-shortlived patch #597220.
Michael W. Hudson [Mon, 19 Aug 2002 16:54:08 +0000 (16:54 +0000)]
Check in my ultra-shortlived patch #597220.

Move some debugging checks inside Py_DEBUG.

They were causing cache misses according to cachegrind.

22 years agoInline call to _PyObject_GetDictPtr() in PyObject_GenericGetAttr().
Guido van Rossum [Mon, 19 Aug 2002 16:50:48 +0000 (16:50 +0000)]
Inline call to _PyObject_GetDictPtr() in PyObject_GenericGetAttr().
This causes a modest speedup.

22 years agoFix typo in __slots__ of ImmutableSet.
Guido van Rossum [Mon, 19 Aug 2002 16:29:58 +0000 (16:29 +0000)]
Fix typo in __slots__ of ImmutableSet.

22 years agoNews about sets. (There's no documentation; if someone wants to
Guido van Rossum [Mon, 19 Aug 2002 16:25:46 +0000 (16:25 +0000)]
News about sets.  (There's no documentation; if someone wants to
convert the doc strings to LaTeX, be my guest.)

22 years agoSet classes and their unit tests, from sandbox.
Guido van Rossum [Mon, 19 Aug 2002 16:19:15 +0000 (16:19 +0000)]
Set classes and their unit tests, from sandbox.

22 years agoSimple but important optimization for descr_check(): instead of the
Guido van Rossum [Mon, 19 Aug 2002 16:02:33 +0000 (16:02 +0000)]
Simple but important optimization for descr_check(): instead of the
expensive and overly general PyObject_IsInstance(), call
PyObject_TypeCheck() which is a macro that often avoids a call, and if
it does make a call, calls the much more efficient PyType_IsSubtype().
This saved 6% on a benchmark for slot lookups.

22 years agoFix spelling errors and note the addition of operator.pow()
Raymond Hettinger [Mon, 19 Aug 2002 14:25:03 +0000 (14:25 +0000)]
Fix spelling errors and note the addition of operator.pow()

22 years agoMerged the MacPython thanks list into the general acknowledgements.
Jack Jansen [Mon, 19 Aug 2002 13:17:39 +0000 (13:17 +0000)]
Merged the MacPython thanks list into the general acknowledgements.
There's really no point in a separate list of thank-you notes.

22 years agoAdded __pow__(a,b) to the operator module. Completes the pattern of
Raymond Hettinger [Mon, 19 Aug 2002 03:19:09 +0000 (03:19 +0000)]
Added __pow__(a,b) to the operator module. Completes the pattern of
all operators having a counterpart in the operator module.

Closes SF bug #577513.

22 years agoSF bug 595919: popenN return only text mode pipes
Tim Peters [Mon, 19 Aug 2002 00:42:29 +0000 (00:42 +0000)]
SF bug 595919: popenN return only text mode pipes
popen2() and popen3() created text-mode pipes even when binary mode
was asked for.  This was specific to Windows.

22 years agoAdd Steve Purcell for unittest.py
Raymond Hettinger [Sun, 18 Aug 2002 22:22:14 +0000 (22:22 +0000)]
Add Steve Purcell for unittest.py

22 years agoRefuse to run if the last bit of the destination path contains a # character.
Jack Jansen [Sun, 18 Aug 2002 21:57:09 +0000 (21:57 +0000)]
Refuse to run if the last bit of the destination path contains a # character.
This is a silly workaround for a rather serious bug in MacOSX: if you take
a long filename and convert it to an FSSpec the fsspec gets a magic
cooky (containing a #, indeed). If you then massage the extension of this
fsspec and convert back to a pathname you may end up referring to the
same file. This could destroy your sourcefile. The problem only occcurs
in MacPython-OS9, not MacPython-OSX (I think).

Closes bug #505562.

22 years agoModify splituser() method to allow an @ in the userinfo field.
Raymond Hettinger [Sun, 18 Aug 2002 20:08:56 +0000 (20:08 +0000)]
Modify splituser() method to allow an @ in the userinfo field.
Jeremy reported that this is not allowed by RFC 2396; however,
other tools support unescaped @'s so we should also.

Apply SF patch 596581 closing bug 581529.

22 years agoOS/2 EMX behaves like Windows where file permissions are concerned
Andrew MacIntyre [Sun, 18 Aug 2002 06:47:19 +0000 (06:47 +0000)]
OS/2 EMX behaves like Windows where file permissions are concerned

22 years agoupdate contact info
Andrew MacIntyre [Sun, 18 Aug 2002 06:32:46 +0000 (06:32 +0000)]
update contact info