On Fri, Oct 4, 2013 at 4:45 PM, IRIE Shinsuke <[email protected]> wrote:
> Hi devs,
>
> In Python3, "int" type number has variable precision, but IntProperty
> provides a fixed precision integer.  So, if a Python script saves a
> very large number in the intger property, the value may overflow and
> cause unexpected results.  Indeed, an error caused by such overflow
> was reported in the tracker:
>
> https://projects.blender.org/tracker/index.php?func=detail&aid=36857&group_id=9&atid=498
>
> Why doesn't integer property use variable precision?  Intentional?

It's intentional. Blender is written in C/C++, and they used fixed
precision, variable precision would be quite difficult to add.

> One more thing,
>
> The description of IntProperty says "... min=-sys.maxint, max=sys.maxint, 
> ...".
> Here, sys.maxint not existing in Python3 can be substituted with
> sys.maxsize.  However, IntProperty actually uses INT_MIN and INT_MAX
> for the default range, and sys.maxsize is not same as INT_MAX.
>
> On Ubuntu (64bit or 32bit),
>
> sys.maxsize = 9223372036854775807 or 2147483647
>
> INT_MAX = 2147483647
> LONG_MAX = 9223372036854775807L or 2147483647L
> LLONG_MAX = 9223372036854775807LL
>
> We should correct the description or change the default range.

Agreed, but this kind of thing is best reported in the bug tracker.

Brecht.
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to