[Python-Dev] Stackless Python - Pros and Cons

Gordon McMillan gmcm@hypernet.com
Sun, 6 Aug 2000 19:34:44 -0400


Jack Jansen wrote:
> Could the defenders of Stackless Python please explain _why_ this
> is such a great idea? Just and Christian seem to swear by it, but
> I'd like to hear of some simple examples of programming tasks
> that will be programmable in 50% less code with it (or 50% more
> understandable code, for that matter).

Here's the complete code for the download of a file (the data 
connection of an FTP server):
 def _doDnStream(self, binary=0):
 mode = 'r'
 if binary:
 mode = mode + 'b'
 f = open(self.cmdconn.filename, mode)
 if self.cmdconn.filepos:
 #XXX check length of file
 f.seek(self.cmdconn.filepos, 0)
 while 1:
 if self.abort:
 break
 data = f.read(8192)
 sz = len(data)
 if sz:
 if not binary:
 data = '\r\n'.join(data.split('\n'))
 self.write(data)
 if sz < 8192:
 break
[from the base class]
 def write(self, msg):
 while msg:
 sent = self.dispatcher.write(self.sock, msg)
 if sent == 0:
 raise IOError, "unexpected EOF"
 msg = msg[sent:]
Looks like blocking sockets, right? Wrong. That's a fully 
multiplexed socket. About a dozen lines of code (hidden in 
that dispatcher object) mean that I can write async without 
using a state machine. 
stackless-forever-ly y'rs
- Gordon

AltStyle によって変換されたページ (->オリジナル) /