1. 04 Oct, 2001 1 commit
    • Guido van Rossum's avatar
      Hopefully fix the profiler right. Add a test suite that checks that · f137f75a
      Guido van Rossum authored
      it deals correctly with some anomalous cases; according to this test
      suite I've fixed it right.
      
      The anomalous cases had to do with 'exception' events: these aren't
      generated when they would be most helpful, and the profiler has to
      work hard to recover the right information.  The problems occur when C
      code (such as hasattr(), which is used as the example here) calls back
      into Python code and clears an exception raised by that Python code.
      Consider this example:
      
          def foo():
              hasattr(obj, "bar")
      
      Where obj is an instance from a class like this:
      
          class C:
              def __getattr__(self, name):
                  raise AttributeError
      
      The profiler sees the following sequence of events:
      
          call (foo)
          call (__getattr__)
          exception (in __getattr__)
          return (from foo)
      
      Previously, the profiler would assume the return event returned from
      __getattr__. An if statement checking for this condition and raising
      an exception was commented out...  This version does the right thing.
      f137f75a
  2. 03 Oct, 2001 13 commits
  3. 02 Oct, 2001 12 commits
    • Guido van Rossum's avatar
      ed554f6f
    • Guido van Rossum's avatar
    • Tim Peters's avatar
      SF patch [#466616] Exclude imported items from doctest. · 4a9ac4a8
      Tim Peters authored
      Another installment; the new functionality wasn't actually enabled in
      normal use, only in the strained use checked by the test case.
      4a9ac4a8
    • Tim Peters's avatar
      SF bug [#467265] Compile errors on SuSe Linux on IBM/s390. · c15c4f1f
      Tim Peters authored
      Unknown whether this fixes it.
      - stringobject.c, PyString_FromFormatV:  don't assume that va_list is of
        a type that can be copied via an initializer.
      - errors.c, PyErr_Format:  add a va_end() to balance the va_start().
      c15c4f1f
    • Guido van Rossum's avatar
      Add Garbage Collection support to new-style classes (not yet to their · 048eb75c
      Guido van Rossum authored
      instances).
      
      Also added GC support to various auxiliary types: super, property,
      descriptors, wrappers, dictproxy.  (Only type objects have a tp_clear
      field; the other types are.)
      
      One change was necessary to the GC infrastructure.  We have statically
      allocated type objects that don't have a GC header (and can't easily
      be given one) and heap-allocated type objects that do have a GC
      header.  Giving these different metatypes would be really ugly: I
      tried, and I had to modify pickle.py, cPickle.c, copy.py, add a new
      invent a new name for the new metatype and make it a built-in, change
      affected tests...  In short, a mess.  So instead, we add a new type
      slot tp_is_gc, which is a simple Boolean function that determines
      whether a particular instance has GC headers or not.  This slot is
      only relevant for types that have the (new) GC flag bit set.  If the
      tp_is_gc slot is NULL (by far the most common case), all instances of
      the type are deemed to have GC headers.  This slot is called by the
      PyObject_IS_GC() macro (which is only used twice, both times in
      gcmodule.c).
      
      I also changed the extern declarations for a bunch of GC-related
      functions (_PyObject_GC_Del etc.): these always exist but objimpl.h
      only declared them when WITH_CYCLE_GC was defined, but I needed to be
      able to reference them without #ifdefs.  (When WITH_CYCLE_GC is not
      defined, they do the same as their non-GC counterparts anyway.)
      048eb75c
    • Tim Peters's avatar
      CVS patch [#466628] Doc changes for doctest patch (#466616), from · 0481d24d
      Tim Peters authored
      Tim Hochberg.  Doctest no longer searches imported objects.
      0481d24d
    • Guido van Rossum's avatar
      pickles(): · fe1fd0e6
      Guido van Rossum authored
      - The test for deepcopy() in pickles() was indented wrongly, so it got
        run twice (one for binary pickle mode, one for text pickle mode; but
        the test doesn't depend on the pickle mode).
      
      - In verbose mode, show which subtest (pickle/cPickle/deepcopy, text/bin).
      fe1fd0e6
    • Guido van Rossum's avatar
      The error reporting here was a bit sparse. In verbose mode, the code · c907bd89
      Guido van Rossum authored
      in run_test() referenced two non-existent variables, and in
      non-verbose mode, the tests didn't report the actual number, when it
      differed from the expected number.  Fixed this.
      
      Also added an extra call to gc.collect() at the start of test_all().
      This will be needed when I check in the changes to add GC to new-style
      classes.
      c907bd89
    • Guido van Rossum's avatar
      Under certain conditions (sometimes triggered by the test suite), · b855134a
      Guido van Rossum authored
      "from xml.parsers import expat" succeeds but the imported expat module
      is an empty shell.  Make sure we don't be fooled by that.
      b855134a
    • Guido van Rossum's avatar
      Correct the URL for the license (only used when the LICENSE[.txt] file · e37e96df
      Guido van Rossum authored
      is not found).  Being fancy: insert the first 3 characters of
      sys.version in the URL.
      e37e96df
    • Guido van Rossum's avatar
      Update reference to pydns. · 0e58ff8d
      Guido van Rossum authored
      0e58ff8d
    • Tim Peters's avatar
      SF patch [#466616] Exclude imported items from doctest, · 7402f791
      Tim Peters authored
      from Tim Hochberg.  Also mucho fiddling to change the way doctest
      determines whether a thing is a function, module or class.  Under 2.2,
      this really requires the functions in inspect.py (e.g., types.ClassType
      is close to meaningless now, if not outright misleading).
      7402f791
  4. 01 Oct, 2001 14 commits