
Philipp
14.08.2017
18:14:25
Что?

Рома
14.08.2017
18:14:35
http://www.online-toolz.com/tools/text-unicode-entities-convertor.php
Decode/Unescape Unicode Entities
вот это
надо то же самое, только в луа

Google

Philipp
14.08.2017
18:37:06
@Snusmumriken

Рома
14.08.2017
18:43:18
Мне надо было большой файл починить от корявости, https://r12a.github.io/apps/conversion/ отлично справился

Snusmumriken
14.08.2017
18:47:55
local utf8 = require'utf8'
str = '\\u041c\\u0430\\u0440\\u0438\\u044f'
print(str:gsub('\\u(%x%x%x%x)', function(c) return utf8.char(tonumber(c, 16)) end)
> https://github.com/starwing/luautf8
Хотя если тебе достаточно юникода (utf16 be) то можно и так:
print(str:gsub('\\u(%x%x)(%x%x)', function(a, b) return string.char(tonumber(a, 16))..string.char(tonumber(b, 16)) end)
Для le - меняем местами a и b.
Конвертить utf16 в utf8 - довольно напряжно, хм.

Рома
14.08.2017
20:57:59
Подкиньте описание опций jit.opt.start пожалуйста
jit.opt.start(2) -- same as -O2
jit.opt.start("-dce")
jit.opt.start("hotloop=10", "hotexit=2")
это то, что на офсайте, не написали ни что такое -dce, ни hotloop, в гугле другие параметры встречаются

Philipp
14.08.2017
20:58:29
???

Рома
14.08.2017
20:58:59
это тюнинг луаджита
я в этом ничего не понимаю, но вдруг его можно затюнить ещё больше, чем из коробки!

Group Butler [beta]
15.08.2017
20:34:23
Добро пожаловать в чат pro.lua, Петр! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Петр
15.08.2017
20:34:41
добрый вечер

Snusmumriken
15.08.2017
20:35:55
Добреутро
Тупые вопросы можно задавать мне!
Не очень тупые - тоже.
Нашёл момент, когда прямое сравнение на равенство с math.huge работает корректно.
> print(1/0 == math.huge)
true
Его можно использовать как проверка делений на ноль.

Google

Vadim
16.08.2017
10:36:50
технически, 1/0 таки и получается бесконечность в какой-то степени :)

Snusmumriken
16.08.2017
10:37:39
Ну, я к тому что прямое сравнение работает. Это довольно неплохо.
Хотя вот такое тоже пашет, например.
> print(2^100500^100500 == math.huge)
true
Хм.

Vadim
16.08.2017
10:43:38
а вот это плохо :)

Snusmumriken
16.08.2017
10:44:06
Я вот сейчас развлекаюсь, вычисляя значение перехода )))
> print(2^1023.99999999999994315658114)
inf
> print(2^1023.999999999999943156581139)
1.7976931348622e+308

Vadim
16.08.2017
10:49:01
знакомое число
либо я тоже этим занимался ранее, либо это как-то связано с интом :)
@Snusmumriken вообще, кстати, вроде, был то ли патч, то ли либа для lua с нормальной математикой
ну, не считая торчей всяких
:)

Dika
16.08.2017
10:58:18

Snusmumriken
16.08.2017
10:59:06
Ты к тому что ответ не тот?
У тебя какая версия luajit?
32/64

Dika
16.08.2017
11:00:29

Snusmumriken
16.08.2017
11:00:47
С чего ты взял что более точен? : )
Откуда инфа о точности? Ты на бумажке посчитал?

Dika
16.08.2017
11:01:52
Но я давно вычислял сам максимальное число в node.js, оно было немного больше этого.

Snusmumriken
16.08.2017
11:03:46
Понимаешь ли в чём проблема, твой ответ некорректен по самой постановке ответа.
Я ищу максимальное число в lua. Не в node.js.
И мне интересны причины этого, почему именно так а не иначе.
Какое мне дело до ноды?

Dika
16.08.2017
11:04:04

Google

Snusmumriken
16.08.2017
11:04:36
Практически такое же, но не такое же.
Видишь разницу?
"Почти" = "ложь".
"Может быть" = "ложь".
Это "научный подход", если что.

Vadim
16.08.2017
11:05:49

Snusmumriken
16.08.2017
11:06:05
В ноде может быть другое количество бит под мантиссу. Типа, в луа - 12 бит (52 - под целую часть).

Vadim
16.08.2017
11:06:23
17:59:36 mniip │ % ("%1.f"):format(2^1023 * (2-2^-52))
17:59:36 yalb │ mniip: "179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368"
17:59:49 mniip │ (it's a whole number)
см. IEEE754

Snusmumriken
16.08.2017
11:06:45
Во, вот это уже похоже

Vadim
16.08.2017
11:07:32

Dika
16.08.2017
11:09:39

Snusmumriken
16.08.2017
11:10:55
Ну это уже похоже на ответ.
Вадим малаца. Ссылка на IEEE оказалась самым годным вариантом.

Влад
16.08.2017
16:11:18
у меня есть библиотека lua-mqtt, которая хочет блокировать программу своим mqtt_client:handler(). Можно ли как-то малой кровью запустить эту функцию в отдельном "потоке", так, чтобы программа продолжала крутиться дальше?

Snusmumriken
16.08.2017
16:13:13
lanes, или найти вариант где оно не блокирует.

The Dude
16.08.2017
16:54:22

Vadim
16.08.2017
17:39:17
ну, вообще-то, есть
если posix/ffi прилепить :)
из коробки, да, нету
но это же Lua. Тут сама суть в том, чтобы в коробке лежал только набор "сделай сам"

The Dude
16.08.2017
18:15:44
В луа нет многопоточки.
И похуй что это же луа и т.д

Google

Vadim
16.08.2017
18:17:01
в Lua нет многопоточности из коробки
если заюзать luaposix или FFI - хоть обфоркайся

Alexey
16.08.2017
18:33:56
многопоточность вполне себе работает.
проблема только в общих данных
но этот вариант не единственный

Admin
ERROR: S client not available

Snusmumriken
16.08.2017
19:36:31
Мо деталей.
Lanes открывает несколько luaState в нескольких os-тредах. Оно работает на нескольких физических процессорах. Что это, если не многопоточка?

The Dude
16.08.2017
19:37:14
Или эти луастэйты в одном процессе*

Snusmumriken
16.08.2017
19:37:38
Подробнее.
В одном процессе, но в нескольких os-тредах.

The Dude
16.08.2017
19:38:10
И есть встроенные примитивы для шэринга данных?

Snusmumriken
16.08.2017
19:39:33
А это интересно.
Общение через shared-memory у linda. Это типа особый тип данных, в которые можно пушить луа-данные. Строки/числа/плоские массивы.
Внутри оно передается как строки, да.

The Dude
16.08.2017
19:40:21
Тогда может и норм.
Хз правда что там за накладные расходы.

Snusmumriken
16.08.2017
19:41:03
Хе, да это заебись. Учитывая что изначально многопоточность не рассчитана на передачу между потоками больших объемов данных.

The Dude
16.08.2017
19:41:22
Гигабайты редко гоняют :))

Snusmumriken
16.08.2017
19:42:30
Вот если бы у луа была бы изначальная многопоточка, можно было бы запрашивать труъ shared-memory objects, с локами и прочей фигнёй. А так - и так сойдет.

The Dude
16.08.2017
19:43:02
Тру многопоточку делать это нихера не просто.

Google

The Dude
16.08.2017
19:43:14
Либо gil, что убивает все.
Либо море пота.

Snusmumriken
16.08.2017
19:43:54
В lanes постарались.
Но для настоящих расшаренных объектов должна быть более сложная организация памяти у самой луа.

The Dude
16.08.2017
19:44:15
Хз, честно, асинхронщины вполне хватает.
Не блокируемый ио

Мерлин
16.08.2017
19:44:29

The Dude
16.08.2017
19:44:39
И быстрый шедулер и ок

Мерлин
16.08.2017
19:45:20

The Dude
16.08.2017
19:45:49

Мерлин
16.08.2017
19:45:54
Хотя там они с таймаутами

Snusmumriken
16.08.2017
19:45:58
Ну, я еще иногда на openCL что-то считаю (биндинг, да), так что мне было бы неплохо и с истиной многопоточкой, чтобы проц был на 100% загружен в течение двух суток. Lanes это дает.

Мерлин
16.08.2017
19:46:06
или таймаут не стукнет