How to prevent this from happening?
John Machin
sjmachin at lexicon.net
Mon May 1 01:08:28 EDT 2006
On 1/05/2006 12:55 PM, phil_nospam_schmidt at yahoo.com wrote:
> Regarding this expression: 1 << x
>
> I had a bug in my code that made x become Very Large - much larger than
> I had intended. This caused Python, and my PC, to lock up tight as a
> drum, and it appeared that the Python task (Windows XP) was happily and
> rapidly consuming all available virtual memory.
>
> Presumably, Python was trying to create a really really long integer,
> just as I had asked it.
>
> Is there a way to put a limit on Python, much like there is a stack
> limit, so that this sort of thing can't get out of hand?
>
If you mean a command line argument to specify an upper limit for the
RHS of a << operator, no there isn't one, and no there shouldn't be one.
To cater for sillinesses that aren't caught by exceptions (or where it
may be a very long time before the exception is triggered, as in your
case), I'd suggest placing tests close to the action. For example, if
you are doing some bit-bashing, "assert nshift <= wordsize" or something
like that may be appropriate.
More information about the Python-list
mailing list