[Python-checkins] python/nondist/sandbox/parrotbench b0.py, 1.5, 1.6 out0, 1.4, 1.5

gvanrossum at users.sourceforge.net gvanrossum at users.sourceforge.net
Wed Dec 31 01:59:44 EST 2003


Update of /cvsroot/python/python/nondist/sandbox/parrotbench
In directory sc8-pr-cvs1:/tmp/cvs-serv26057

Modified Files:
	b0.py out0 
Log Message:
Another game with pi(): track local assignments through a special dict.

Index: b0.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/parrotbench/b0.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** b0.py	31 Dec 2003 02:04:20 -0000	1.5
--- b0.py	31 Dec 2003 06:59:41 -0000	1.6
***************
*** 252,255 ****
--- 252,256 ----
  
  class Function(object):
+     makeLocals = dict
      def __init__(self, name, args, body, globals):
          self.name = name
***************
*** 259,263 ****
      def __call__(self, *args):
          check(len(args), len(self.args))
!         locals = dict(zip(self.args, args))
          try:
              eval(self.body, self.globals, locals)
--- 260,264 ----
      def __call__(self, *args):
          check(len(args), len(self.args))
!         locals = self.makeLocals(zip(self.args, args))
          try:
              eval(self.body, self.globals, locals)
***************
*** 268,272 ****
      def __call__(self, *args):
          check(len(args), len(self.args))
!         locals = dict(zip(self.args, args))
          try:
              for value in geneval(self.body, self.globals, locals):
--- 269,273 ----
      def __call__(self, *args):
          check(len(args), len(self.args))
!         locals = self.makeLocals(zip(self.args, args))
          try:
              for value in geneval(self.body, self.globals, locals):
***************
*** 905,909 ****
--- 906,924 ----
      print "".join(map(str, digits))
      out2 = output.getvalue()
+     checkoutput(0)
+ 
+     class TrackingDict(dict):
+         def __setitem__(self, *args):
+             writeln("%s = %.50r" % args)
+             super(TrackingDict, self).__setitem__(*args)
+     Function.makeLocals = TrackingDict
+     g = env['pi']()
+     digits = []
+     for i in range(100):
+         digits.append(g.next())
+     checkoutput(902386495)
+     Function.makeLocals = dict
  
  if __name__ == '__main__':
      main()
+ 

Index: out0
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/parrotbench/out0,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** out0	31 Dec 2003 02:04:20 -0000	1.4
--- out0	31 Dec 2003 06:59:41 -0000	1.5
***************
*** 9175,9176 ****
--- 9175,10756 ----
  3141592653
  3141592653
+ k = 2
+ a = 4
+ b = 1
+ a1 = 12
+ b1 = 4
+ p = 4
+ q = 5
[...1553 lines suppressed...]
+ d = 6L
+ d1 = 8L
+ p = 17161
+ q = 263
+ k = 132
+ a = 44251238236192885942548145627920559612834490019477
+ b = 53634950897741092356584376185938131188127119065994
+ a1 = 13513199258755166498247119721333722230685517166948
+ b1 = 17027474947792072675248882917835637732116154588448
+ d = 8L
+ d1 = 7L
+ p = 17424
+ q = 265
+ k = 133
+ a = 13513199258755166498247119721333722230685517166948
+ b = 17027474947792072675248882917835637732116154588448
+ a1 = 43520313785975439666984456155743242218256902033408
+ b1 = 54468162456071400521620801438902299968327078885447
+ d = 7L
+ d1 = 7L





More information about the Python-checkins mailing list