Skip to main content

bytecode optimisation using staticness assertions.

Project description

promise: bytecode optimisation using staticness assertions.

This is a module for applying some simple optimisations to function bytecode.
By promising that a function doesn't do certain things at run-time, it's
possible to apply optimisations that are not legal in the general case.

As a simple example, it's possible to promise that a function doesn't modify
(or care if anyone else modifies) any builtin functions by decorating it thus:

@promise.constant(__builtins__)
def function():
...

Such a promise will allow the builtins to be stored as direct object references
in the function bytecode, avoiding name lookups during function execution.

As another example, it's possible to promise that a function is pure; i.e. that
it's a simple algorithm for mapping input values to an output value:

@promise.pure()
def calculate(a,b):
return 2*a*a + 3*b + 7

If a pure function is then used by another function as a constant, it can be
directly inlined into the bytecode to avoid the overhead of a function call.

Promise is built on Noam Raphael's fantastic "byteplay" module; since the
official byteplay distribution doesn't support Python 2.6, a local version with
appropriate patches is included with promise.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

promise-0.2.0.tar.gz (17.8 kB view details)

Uploaded Source

File details

Details for the file promise-0.2.0.tar.gz.

File metadata

  • Download URL: promise-0.2.0.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for promise-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bd8c3ed58092547c19bf5d321a5a6eb574e8327ff7c9e7b30b463beb54f5cb84
MD5 f62e80613e5447294d9e48f488be2a1d
BLAKE2b-256 96227ab1480ca9de349c380a4fbdf1a1ebcbfe2adef5a6183a26a0a9d88b8c6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page