[Stackless] Current issues

Christian Tismer tismer at stackless.com
Mon Feb 16 03:34:24 CET 2004

Hi Bob,

> This is off the top of my head.. we really need an issue tracker.  
> Should I install/configure roundup on the stackless.com server?

There is just one real bug issue left, so I don't need a need
for an issue tracker, yet. Unless we weant to use that for
But I don't liek that too much, since that makes missing
features look like bugs...

> Missing features:
> [no test coverage] itertools types can not be pickled (how should this 
> be implemented, Christian?)

I'm not familiar with itertools, yet.
I think there are lots of other objects which cannot be
pickled, yet, and it is not that urgent to invent all of that.

Well, looking at one of these, "takewhile":
it has the structure

typedef struct {
	PyObject *func;
	PyObject *it;
	long	 stop;
} takewhileobject;

which looks like an easy to implement pickle?
Again, not urgent. What we need is correctness,
not completeness.

> [module case covered by test_pickle] the 'pricklepit' breaks the __new__ 
> behavior of a few types, most notably function and module

I don't see how functions break the pickling; this seems
to be compatible.

Not so with modules, it is semantically different,
since the types.ModuleType(name) does not get imported.

code objects seem to have a similar problem.
What I will do is to try to remove all factories
which are existent already and adjust them if they
use a different way to initialize.

For the moment, I changed init_type to enforce
that tp_new was not already set, but then
patched the three remaining problems with setting
tp_new to NULL and a comment like

/* XXX tp_new hack: need to rewrite this XXX */

The implementation must here relly be changed.

I'm especially unhappy that modules are so weird now.
Modules can just be created without importing.
How do we pickle that kind of modules ???

> ../Stackless/test/becomecapture.py

Is ok now.

> ../Stackless/test/temptest.py

Is fixed as well.

> ../Stackless/unittests/test_pickle.py -v
> testRecursiveEmbedded (__main__.TestTasklets) ... starting tasklet
> 13 0
> 13 1
> 13 2
> 13 3
> 13 4
> 13 5
> 13 6
> 13 7
> 13 8
> 13 9
> 13 10
> 13 11
> 13 12
> 13 13
> pickling
> ../Modules/gcmodule.c:231: failed assertion `gc->gc.gc_refs != 0'

There might of course be some refcounting bug.

thanks - chris

Christian Tismer             :^)   <mailto:tismer at stackless.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  mobile +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/

Stackless mailing list
Stackless at stackless.com

More information about the Stackless mailing list