Date: 2014-11-10 04:02 pm (UTC)
да это понятно :) ну вот допустим 0xFFFFFFFF выглядит для Си-шника как int32/uint32 - а для Dart с его интами это int33 :)

Если вдаваться в подробности, у нас пирамида внутренних представлений выглядит так smi -> mint -> bigint.

Smi = Machine Word Size - 1 bit (int31 on 32-bit, int63 on 64-bit)

Mint = boxed int64

Bigint = понятное дело "бесконечный".

Поэтому когда кто-то делает значение типа 0xFFFFFFFF в 32-bit Dart VM его таращит в Mint и информация о его пределах теряется. Вот отсюда и все проблемы.

Нужно как я в ишуе писал делать нормальный range profiling на бинарных операциях - тогда получится хороший код генерировать.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

thedeemon: (Default)
Dmitry Popov

May 2025

S M T W T F S
    123
45678910
11 121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 17th, 2025 10:24 pm
Powered by Dreamwidth Studios