@ProLua

Страница 138 из 307
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 с нормальной математикой

ну, не считая торчей всяких

:)

Snusmumriken
16.08.2017
10:59:06
Ты к тому что ответ не тот?

У тебя какая версия luajit? 32/64

Dika
16.08.2017
11:00:29
Ты к тому что ответ не тот?
Скорее всего, он просто более точен. Это в nodejs.

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

Dika
16.08.2017
11:01:52
1.7976931348623157e+308
в жс есть константа Number.MAX_VALUE, она равна этому числу

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

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

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

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
Во, вот это уже похоже
это число таки равно 1.7976931348623157e+308

Dika
16.08.2017
11:09:39
> print(2^1023.99999999999994315658114) inf > print(2^1023.999999999999943156581139) 1.7976931348622e+308
> print(1.7976931348622e+308); 1.7976931348622e+308 > print(1.7976931348623e+308); 1.7976931348623e+308

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, или найти вариант где оно не блокирует.

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-тредах. Оно работает на нескольких физических процессорах. Что это, если не многопоточка?

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
Хе, да это заебись. Учитывая что изначально многопоточность не рассчитана на передачу между потоками больших объемов данных.

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
В смысле стопят основной поток?
Пока другой не примет сообщение, да

или таймаут не стукнет

Страница 138 из 307