[portland] dis.dis in IronPython / latest PPUG meetup

Chris McDonald xwraithanx at gmail.com
Fri Oct 15 03:24:22 CEST 2010


Also with some version/implementations of python you can not use
dis.dis on builtins or C functions. It will blow up with the same sort
of NotImplemented error.

-Chris

On Thu, Oct 14, 2010 at 4:49 PM, kirby urner <kirby.urner at gmail.com> wrote:
> Thanks to all for a fine evening last night.  My blogged write-up
> linked below.**
>
> I was sounding pretty confidant that I knew what dis.dis would do on
> IronPython:  spit out IL byte codes right?
>
> I just tested that hypothesis.  But first, the CPython version:
>
> IDLE 2.6.6
>>>> def f(x):  return 2*pow(x,3) + 5*pow(x,2) + 1
>
>>>> import dis
>>>> dis.dis(f)
>  1           0 LOAD_CONST               1 (2)
>              3 LOAD_GLOBAL              0 (pow)
>              6 LOAD_FAST                0 (x)
>              9 LOAD_CONST               2 (3)
>             12 CALL_FUNCTION            2
>             15 BINARY_MULTIPLY
>             16 LOAD_CONST               3 (5)
>             19 LOAD_GLOBAL              0 (pow)
>             22 LOAD_FAST                0 (x)
>             25 LOAD_CONST               1 (2)
>             28 CALL_FUNCTION            2
>             31 BINARY_MULTIPLY
>             32 BINARY_ADD
>             33 LOAD_CONST               4 (1)
>             36 BINARY_ADD
>             37 RETURN_VALUE
>>>>
>
> And now for something completely different....
>
> IronPython 2.6.1 (2.6.10920.0) on .NET 4.0.30319.1
> Type "help", "copyright", "credits" or "license" for more information.
>>>> 6+6
> 12
>>>> import dis
>>>> def f(x):  return 2*pow(x,3) + 5*pow(x,2) + 1
> ...
>>>> dis.dis(f)
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "C:\Program Files (x86)\IronPython 2.6 for .NET
> 4.0\Lib\dis.py", line 42, in disassemble
>  File "C:\Program Files (x86)\IronPython 2.6 for .NET
> 4.0\Lib\dis.py", line 64, in disassemble
>  File "C:\Program Files (x86)\IronPython 2.6 for .NET
> 4.0\Lib\dis.py", line 183, in findlinestarts
> NotImplementedError
>
> I should do some reading obviously.  It looks like it almost worked,
> but looks can be deceiving.
>
> See ya'll on chat maybe,
>
> Kirby
>
> ** http://controlroom.blogspot.com/2010/10/ppug-20101012.html
>
> PS:  next PPUG I could do a lightning talk on what I'm up to with PSF a
> little.  Here's some documentation.
>
> http://mail.python.org/pipermail/edu-sig/2010-October/010092.html
>
> For kids, I prefer Akbar font version:
> http://www.flickr.com/photos/17157315@N00/5079860554/
> http://www.flickr.com/photos/17157315@N00/5079860510/
>
> It's partly that Pycon / Havana I'm thinking about, also Pycon / Tehran.
> Anyone going to Python / Ukraine?  Not me.  Vilnius was great
> though (a EuroPython, not a Pycon).
>
> Or I could do 5 mins on Martian Math, which I shared through
> Reed College this summer.
>
> http://www.4dsolutions.net/satacad/martianmath/toc.html
> (lotsa Python + VPython)
>
> Michelle:  +1 on health tips / diet including the esoteric stuff. :)
> This is a vital branch of geekology, per this new O'Reilly title:
> http://www.flickr.com/photos/17157315@N00/4965449134/in/set-72157624771928073/
> _______________________________________________
> Portland mailing list
> Portland at python.org
> http://mail.python.org/mailman/listinfo/portland
>


More information about the Portland mailing list