<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/zope-interface.git/src/zope/interface/_zope_interface_coptimizations.c, branch issue158</title>
<subtitle>github.com: zopefoundation/zope.interface.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/'/>
<entry>
<title>Whitespace.</title>
<updated>2020-01-27T13:44:29+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-27T13:44:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=2c359081237f5d8a87de223e32e380d83b4bd26f'/>
<id>2c359081237f5d8a87de223e32e380d83b4bd26f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Specifications with no dependents are common (4700 out of 7000 in this example), so avoid allocating a WeakKeyDictionary until needed.</title>
<updated>2020-01-27T13:40:36+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-23T16:57:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=7f6638cf5113f9f6ecb51116bbb72fdbc3f3ce06'/>
<id>7f6638cf5113f9f6ecb51116bbb72fdbc3f3ce06</id>
<content type='text'>
This saves another 2% or so.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This saves another 2% or so.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Declaration, Specification and ClassProvides to __slots__.</title>
<updated>2020-01-27T13:40:35+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-23T16:24:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=ab0466e56c6328407c3839a3a392cb127dbdb282'/>
<id>ab0466e56c6328407c3839a3a392cb127dbdb282</id>
<content type='text'>
In a test of 6000 modules that load 2245 InterfaceClass objects and produce 2233 ClassProvides instances, this saves about 1% total memory usage in Python 2.7.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In a test of 6000 modules that load 2245 InterfaceClass objects and produce 2233 ClassProvides instances, this saves about 1% total memory usage in Python 2.7.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use tp_members in SpecificationBase and ClassProvidesBase.</title>
<updated>2020-01-23T12:39:48+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-22T15:32:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=ddf670afb792b7f7849d6383f31cac3273811edf'/>
<id>ddf670afb792b7f7849d6383f31cac3273811edf</id>
<content type='text'>
Instead of storing 1 and 2 attributes, respectively, in __dict__. This lets us eliminate inst_attr and its use of an undocumented API.

It also helps reign in the size of these objects. Before, on CPython 8, a ClassProvides object that subclasses both SpecificationBase and ClassProvidesBase required 408 bytes: 48 for the object, 360 for the dict.

Now it requires 72 + 232 = 304.

With a bit of work on defining __slots__ in Python, that can be brought much lower still, I think.

zope.security tests pass with this installed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of storing 1 and 2 attributes, respectively, in __dict__. This lets us eliminate inst_attr and its use of an undocumented API.

It also helps reign in the size of these objects. Before, on CPython 8, a ClassProvides object that subclasses both SpecificationBase and ClassProvidesBase required 408 bytes: 48 for the object, 360 for the dict.

Now it requires 72 + 232 = 304.

With a bit of work on defining __slots__ in Python, that can be brought much lower still, I think.

zope.security tests pass with this installed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Test PURE_PYTHON at runtime.</title>
<updated>2020-01-21T15:38:45+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-21T13:59:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=e76d03f51909c2b3f8cdad38eb91fa5f523b5e2e'/>
<id>e76d03f51909c2b3f8cdad38eb91fa5f523b5e2e</id>
<content type='text'>
Turns out that the C extensions build and work fine with PyPy, but don't use them by default. Let them
be forced, though.

Tests needed some refactoring to account for the various permutations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turns out that the C extensions build and work fine with PyPy, but don't use them by default. Let them
be forced, though.

Tests needed some refactoring to account for the various permutations.
</pre>
</div>
</content>
</entry>
<entry>
<title>I removed an unnecessary whitespace.</title>
<updated>2017-09-21T01:26:11+00:00</updated>
<author>
<name>y-fujisaki2</name>
<email>31396984+y-fujisaki2@users.noreply.github.com</email>
</author>
<published>2017-09-21T01:26:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=d372be17ce595ec78c00429e7987ed4f03872c77'/>
<id>d372be17ce595ec78c00429e7987ed4f03872c77</id>
<content type='text'>
Thank you for follows. I misread it for carriage return.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thank you for follows. I misread it for carriage return.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix process of reference count during GC</title>
<updated>2017-09-19T07:13:30+00:00</updated>
<author>
<name>y-fujisaki2</name>
<email>31396984+y-fujisaki2@users.noreply.github.com</email>
</author>
<published>2017-09-19T07:13:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=6ba212bd44aef9669b355abd242fdc7e2f7aa0c3'/>
<id>6ba212bd44aef9669b355abd242fdc7e2f7aa0c3</id>
<content type='text'>
call PyObject_GC_UnTrack() in tp_dealloc()
see the following sites for details:
 * https://bugs.python.org/issue31095
 * https://github.com/python/cpython/pull/2974</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
call PyObject_GC_UnTrack() in tp_dealloc()
see the following sites for details:
 * https://bugs.python.org/issue31095
 * https://github.com/python/cpython/pull/2974</pre>
</div>
</content>
</entry>
<entry>
<title>Raise ValueError if non-text name passed to adapter registry methods.</title>
<updated>2017-05-04T09:50:35+00:00</updated>
<author>
<name>Tres Seaver</name>
<email>tseaver@palladion.com</email>
</author>
<published>2017-05-04T09:47:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=81f50ca16007d0eb6beb7a51b5bf32b6f1cb410a'/>
<id>81f50ca16007d0eb6beb7a51b5bf32b6f1cb410a</id>
<content type='text'>
Prevents corruption of lookup cache.

Alternative to fix proposed in #75.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prevents corruption of lookup cache.

Alternative to fix proposed in #75.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't redefine METH_KEYWORDS</title>
<updated>2017-01-05T13:06:42+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2017-01-05T13:06:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=5c08781ce9d73d8422bad9b2c2ef3c78ed5e5ff1'/>
<id>5c08781ce9d73d8422bad9b2c2ef3c78ed5e5ff1</id>
<content type='text'>
Instead, use the intended METH_KEYWORDS | METH_VARARGS spelling.

Fixes #71
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead, use the intended METH_KEYWORDS | METH_VARARGS spelling.

Fixes #71
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix C optimizations broken on Py3k.</title>
<updated>2016-11-15T19:04:50+00:00</updated>
<author>
<name>Tres Seaver</name>
<email>tseaver@palladion.com</email>
</author>
<published>2016-11-15T19:04:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=53246e53624b0ed24cabbd6a819008e2bf1e6540'/>
<id>53246e53624b0ed24cabbd6a819008e2bf1e6540</id>
<content type='text'>
- The bare import of '_zope_c_optimizations' prevented them from being
  used.

- After enabling them via absolute imports, they would fail due to
  http://bugs.python.org/issue15657.

Fixes #60.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The bare import of '_zope_c_optimizations' prevented them from being
  used.

- After enabling them via absolute imports, they would fail due to
  http://bugs.python.org/issue15657.

Fixes #60.
</pre>
</div>
</content>
</entry>
</feed>
