Author Topic: Не работает команда wait в x64 (проблема 49 дней), скрипт работает быстрей :)))  (Read 2016 times)

0 Members and 1 Guest are viewing this topic.

Cleoss

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

Code: [Select]
#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


Code: (clickermann) [Select]
#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



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

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

Vint

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

Ну или v4.14.003b тоже вполне хорошая.
« Last Edit: September 24, 2020, 01:06:19 PM by Vint »


Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Отсюда возникает вопрос: какова максимальная величина переменной int в 64-разрядной версии Кликерманна, не 232-1 ли?

Степени двойки и максимальное возвращаемое целое число для 64bit (не в нотации):
Code: [Select]
// 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