Hello Brett, On Thu, Sep 30, 2004 at 01:02:34PM -0700, Brett C. wrote: > (101, ('BINARY_MULTIPLY', (8, 4))), > (106, ('BINARY_SUBSCR', 128)), > (118, ('GET_ITER', 128)), > (124, ('BINARY_MODULO', None)), > (195, ('meth_join', 4)), > (204, ('BINARY_ADD', (8, 8))), > (331, ('BINARY_ADD', (4, 4))), > (513, ('BINARY_LSHIFT', (8, 8))), > (840, ('meth_append', 128)), > (1270, ('PRINT_ITEM', 4)), > (1916, ('BINARY_MODULO', 4)), > (12302, ('STORE_SUBSCR', 64))] I was surprized at first to see so few operations involving integers. There isn't even LOAD_SUBSCR for a list and an integer, though I believe it to be a very common operation. It makes me guess that your type-inferencer does not recognize 'i' to be an integer in constructions like for i in range(...) ? If so, it might be worth considering that some built-ins (most likely range(), len(), enumerate()) should be treated specially. Remember there was also discussion in this list at some point about the compiler producing opcodes like BUILTIN_LEN. This means that it might be acceptable to break the precise semantics (which involve looking up the name 'len' or 'range' in the globals first) and just special-case these common built-ins. Armin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4