Автор Тема: Не работает команда wait в x64 (проблема 49 дней), скрипт работает быстрей :)))  (Прочитано 130 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Cleoss

  • Активный участник
  • ***
  • Сообщений: 246
  • Автоматизируй это!
    • Просмотр профиля
Неу! На 49-ый день работы компа КЛМН версии 4.13 b3, вместо того, чтобы однократно записать строчку в лог, стал раздувать файл до многих МБ (начиная с момента, когда он должен был однократно залогить строку, ошибка случилась ещё не дойдя до лбщеизвестной проблемы переполнения 32-битного числа после 49,7 дней работы Виндовс). На момент написания скрипта ещё не знал про функцию GetTickCount64(), благодаря чему и выловился баг. Отсюда возникает вопрос: какова максимальная величина переменной int в 64-разрядной версии Кликерманна, не 232-1 ли?

#autorun
#logfile "TixLog.txt"
while (1)
   $c=$_ms/1000/3600/24
   print($_date_y,".",$_date_m,".",$_date_d,"   Days on: ",$c)
   wait(86400)
end_cyc


Код: Clickermann
  1. #autorun
  2. #logfile "TixLog.txt"
  3. while (1)
  4.   $c=$_ms/1000/3600/24
  5.   print($_date_y,".",$_date_m,".",$_date_d,"   Days on: ",$c)
  6.   wait(86400)
  7. end_cyc



ПС. На компе последней версии 4.14 нету (или какая там сейчас есть), а на сайте почему-то ссылка на какую-то подверсию 4.13, в общем не стал искать на форуме самую свежую версию и протестил в той, что есть.

ППС. [spoiler] уже не работает?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3503
  • Лечу куда хочу. cman 4.13.014x32, W10, W7
    • Просмотр профиля
b3 это же beta.
Используй  последний final v4.13.14
В ней как раз
Цитировать
+ Исправлен сбой при работе системы больше 49 дней без перезагрузки
даже в 32 битной версии.

Ну или v4.14.003b тоже вполне хорошая.
« Последнее редактирование: Сентябрь 24, 2020, 01:06:19 pm от Vint »


Cleoss

  • Активный участник
  • ***
  • Сообщений: 246
  • Автоматизируй это!
    • Просмотр профиля
Отсюда возникает вопрос: какова максимальная величина переменной int в 64-разрядной версии Кликерманна, не 232-1 ли?

Степени двойки и максимальное возвращаемое целое число для 64bit (не в нотации):
// 25.09.2020
#name "Powers"
logclear
$a=1
$b=1
while($b<64)
$a=$a*2
print("2 ^ ",$b," = ",$a,", ",strlen($a))
inc($b)
//wait(0.2)
end_cyc
halt