Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!xlned.com!feeder1.xlned.com!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.021 X-Spam-Evidence: '*H*': 0.96; '*S*': 0.00; 'compiler': 0.07; 'variables': 0.07; 'variables.': 0.09; '{},': 0.09; 'cc:addr :python-list': 0.11; 'python': 0.11; '(just': 0.16; 'allocates': 0.16; 'to:addr:web.de': 0.16; 'language': 0.16; 'wrote:': 0.18; '(but': 0.19; 'stack': 0.19; 'machine': 0.22; 'cc:addr:python.org': 0.22; 'decide': 0.24; 'paul': 0.24; '(or': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; '+0200': 0.26; 'subject:/': 0.26; 'header:In-Reply-To:1': 0.27; 'function': 0.29; 'code': 0.31; 'produces': 0.31; 'fri,': 0.33; 'raw': 0.33; 'sense': 0.34; 'beyond': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'really': 0.36; 'accessing': 0.36; 'charset:us-ascii': 0.36; 'should': 0.36; 'called': 0.40; 'skip:u 10': 0.60; 'first': 0.61; 'email addr:gmail.com': 0.63; 'stand': 0.64; 'different': 0.65; 'compare:': 0.84; 'fish': 0.84; 'fortunately,': 0.84; 'otten': 0.84; 'reflection': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=l2a3hvCyVewZMffxXCe4xLSIH/JWJ2syTAtlvFDc/Q8=; b=Taf8WCPvWQA5PB0a+ZZElSnBbth2nHNz5tTNlYYUGhY3q9oxUOLX9Vcq+2iKaHSeBC LgBGBdvA+wYa+OnuYd/qJ8AJXB9D01IQqn+dcNmPBF7Apbgq8ZiWaSlF+MTRVNDodYoY VLSNo0T/ng0oSwePWews5SyKJPC00SK5piLGGrHwIhrukTH5pXcJrOdjE6MJyKY7DUHJ OocpdHy3iaF1CR+9SvE6CQIRf5O7DWS0Vy7cEF9DesADR1s5OXsaOzFcv2tNP6BjvF5n qtef3mjl7IvluGRkrKgImly+KaoP4bO+0BH6DoL/bnh/ZxiyRveqJv8tx4fE2FPMdsTO N0UA== X-Received: by 10.180.37.180 with SMTP id z20mr3861629wij.58.1402658919746; Fri, 13 Jun 2014 04:28:39 -0700 (PDT) Date: Fri, 13 Jun 2014 14:28:36 +0300 From: Paul Sokolovsky To: Peter Otten <__peter__@web.de> Subject: Re: Asymmetry in globals __getitem__/__setitem__ In-Reply-To: References: <878up1wde6.fsf@elektro.pacujo.net> X-Mailer: Claws Mail 3.10.0 (GTK+ 2.24.10; i686-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 31 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1402658928 news.xs4all.nl 2955 [2001:888:2000:d::a6]:60887 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:73261 Hello, On Fri, 13 Jun 2014 12:53:54 +0200 Peter Otten <__peter__@web.de> wrote: [] > > exec(fun.__code__, {}, Namespace()) > > > > > > Neither __getitem__ nor __setitem__ seem to be called on the local > > variables. > > Accessing fun.__code__ is clever, but unfortunately the compiler > produces different bytecodes for loading/storing variables inside a > function. Compare: Compiler produces different bytecodes, and allocates local variables on stack (just like C) very fortunately, steps like that allowed Python to drop moniker of "ridiculously slow language". And people should decide what they really want - fast language which can stand against the competition, or language with dynamicity and reflection capabilities beyond any practical need. I make first choice any time. And then it makes sense to just accept that any function can be JIT (or AOT) compiled, and there's nothing to fish inside of it (but for the raw machine code of unknown architecture). -- Best regards, Paul mailto:pmiscml@gmail.com