[Idle-dev] CVS: idle ScriptBinding.py,1.7,1.8 rpc.py,1.6,1.7 run.py,1.6,1.7
Kurt B. Kaiser
kbk@users.sourceforge.net
Sun, 25 Aug 2002 07:08:09 -0700
Update of /cvsroot/idlefork/idle
In directory usw-pr-cvs1:/tmp/cvs-serv25166
Modified Files:
ScriptBinding.py rpc.py run.py
Log Message:
1. Revert subprocess environment clearing, will restart subprocess
instead.
2. Preserve the Idle client's listening socket for reuse with the
fresh subprocess.
3. Remove some unused rpc code, comment out additional unused code.
Modified Files:
ScriptBinding.py rpc.py run.py
Index: ScriptBinding.py
===================================================================
RCS file: /cvsroot/idlefork/idle/ScriptBinding.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** ScriptBinding.py 28 Jul 2002 03:35:31 -0000 1.7
--- ScriptBinding.py 25 Aug 2002 14:08:07 -0000 1.8
***************
*** 148,153 ****
shell = flist.open_shell()
interp = shell.interp
- # clear the subprocess environment before every Run/F5 invocation
- interp.rpcclt.remotecall("exec", "clear_the_environment", (), {})
# XXX Too often this discards arguments the user just set...
interp.runcommand("""if 1:
--- 148,151 ----
Index: rpc.py
===================================================================
RCS file: /cvsroot/idlefork/idle/rpc.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** rpc.py 24 Aug 2002 23:57:17 -0000 1.6
--- rpc.py 25 Aug 2002 14:08:07 -0000 1.7
***************
*** 50,62 ****
return unpickle_code, (ms,)
! def unpickle_function(ms):
! return ms
!
! def pickle_function(fn):
! assert isinstance(fn, type.FunctionType)
! return `fn`
copy_reg.pickle(types.CodeType, pickle_code, unpickle_code)
! copy_reg.pickle(types.FunctionType, pickle_function, unpickle_function)
BUFSIZE = 8*1024
--- 50,63 ----
return unpickle_code, (ms,)
! # XXX KBK 24Aug02 function pickling capability not used in Idle
! # def unpickle_function(ms):
! # return ms
!
! # def pickle_function(fn):
! # assert isinstance(fn, type.FunctionType)
! # return `fn`
copy_reg.pickle(types.CodeType, pickle_code, unpickle_code)
! # copy_reg.pickle(types.FunctionType, pickle_function, unpickle_function)
BUFSIZE = 8*1024
***************
*** 67,72 ****
if handlerclass is None:
handlerclass = RPCHandler
- # XXX KBK 25Jun02 Not used in Idlefork.
- # self.objtable = objecttable
SocketServer.TCPServer.__init__(self, addr, handlerclass)
--- 68,71 ----
***************
*** 87,102 ****
"Override TCPServer method, return already connected socket"
return self.socket, self.server_address
-
-
- # XXX The following two methods are not currently used in Idlefork.
- # def register(self, oid, object):
- # self.objtable[oid] = object
-
- # def unregister(self, oid):
- # try:
- # del self.objtable[oid]
- # except KeyError:
- # pass
-
objecttable = {}
--- 86,89 ----
***************
*** 406,419 ****
def __init__(self, address, family=socket.AF_INET, type=socket.SOCK_STREAM):
! self.sock = socket.socket(family, type)
! self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
! self.sock.bind(address)
! self.sock.listen(1)
def accept(self):
! newsock, address = self.sock.accept()
if address[0] == '127.0.0.1':
print>>sys.__stderr__, "Idle accepted connection from ", address
! SocketIO.__init__(self, newsock)
else:
print>>sys.__stderr__, "Invalid host: ", address
--- 393,407 ----
def __init__(self, address, family=socket.AF_INET, type=socket.SOCK_STREAM):
! self.listening_sock = socket.socket(family, type)
! self.listening_sock.setsockopt(socket.SOL_SOCKET,
! socket.SO_REUSEADDR, 1)
! self.listening_sock.bind(address)
! self.listening_sock.listen(1)
def accept(self):
! working_sock, address = self.listening_sock.accept()
if address[0] == '127.0.0.1':
print>>sys.__stderr__, "Idle accepted connection from ", address
! SocketIO.__init__(self, working_sock)
else:
print>>sys.__stderr__, "Invalid host: ", address
Index: run.py
===================================================================
RCS file: /cvsroot/idlefork/idle/run.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** run.py 5 Aug 2002 03:52:10 -0000 1.6
--- run.py 25 Aug 2002 14:08:07 -0000 1.7
***************
*** 2,6 ****
import time
import socket
- import __main__
import rpc
--- 2,5 ----
***************
*** 57,72 ****
def __init__(self, rpchandler):
self.rpchandler = rpchandler
! self.base_env_keys = __main__.__dict__.keys()
def runcode(self, code):
! exec code in __main__.__dict__
!
! def clear_the_environment(self):
! global __main__
! env = __main__.__dict__
! for key in env.keys():
! if key not in self.base_env_keys:
! del env[key]
! env['__doc__'] = None
def start_the_debugger(self, gui_adap_oid):
--- 56,64 ----
def __init__(self, rpchandler):
self.rpchandler = rpchandler
! import __main__
! self.locals = __main__.__dict__
def runcode(self, code):
! exec code in self.locals
def start_the_debugger(self, gui_adap_oid):