
Alexander
30.01.2017
11:35:43
да, именно так, если я верно понимаю строки 74-75 в твоей либе

Mirocow
30.01.2017
11:36:00
спасибо

Alexander
30.01.2017
11:42:56
как успехи?

Mirocow
30.01.2017
11:43:12
redis1.lua:42: Array: arg#3 error: "number" expected, got "nil"
stack traceback:
[C]: in function 'error'
.\lib.lua:11: in function 'checker'
.\lib.lua:115: in function 'slice'
redis1.lua:42: in function 'getEntityPositionRepeatCount'
redis1.lua:48: in main chunk
Debugging session completed (traced 16 instructions).

Google

Snusmumriken
30.01.2017
11:43:15
Ох, сколько вы наспамили :3

Mirocow
30.01.2017
11:43:22
извините

Alexander
30.01.2017
11:43:40

Mirocow
30.01.2017
11:43:50
так и есть

Snusmumriken
30.01.2017
11:43:59
Умиляет что вы наспамили по моей либе, и даже кажется её читали.

Alexander
30.01.2017
11:44:27

Mirocow
30.01.2017
11:44:29
array_product(positionsCount:slice(position+1), #positionsCount)

Snusmumriken
30.01.2017
11:44:34
Хм, кстати, обнаружил не совсем правильную проверку чекера, хм.

Mirocow
30.01.2017
11:44:35
так нельзя?

Snusmumriken
30.01.2017
11:45:08
Должно быть можно.
Какая версия lua, кстати? : 3

Mirocow
30.01.2017
11:45:09
да твоя либа понятна
но чекер криво пашет

Google

Mirocow
30.01.2017
11:45:27
5.3

Snusmumriken
30.01.2017
11:45:43
Вот это меня тож напрягло чуть. Стоп, серьёзно? 3.5 версия lua? Не 5.3? Ок, я тоже редактирую :3

Mirocow
30.01.2017
11:45:55
;)
array_product(positionsCount:slice(position+1), #positionsCount) так нельзя?
почему параметр b = nil

Alexander
30.01.2017
11:46:48

Mirocow
30.01.2017
11:47:57
#positionsCount - передалось как nil
те мне по иде нужен аналог функции PHP array_slice()
те по сути мне нужно array_product(positionsCount:slice(position+1), #positionsCount - position+1)

Snusmumriken
30.01.2017
11:51:23
Кстати, на 5.1 пашет корректно.

Mirocow
30.01.2017
11:51:42
получается чекер лишний
без него все нормально

Snusmumriken
30.01.2017
11:52:11
Не, ну можешь убрать, но тогда он не скажет тебе где проблема : 3
Странное поведение на 5.3. Хм. Впрочем, я писал для luajit, но не использовал ничего сложнее арифметики, string:sub и сравнения строк.

Mirocow
30.01.2017
11:52:39
а так он говорил что проблема, а ее там нет

Alexander
30.01.2017
11:52:59
суслиииииик

Mirocow
30.01.2017
11:53:21
a = a and type(a) == ch[b:sub(1, 1)]
or b:sub(-2) == '?' and type(a) == 'nil'
or error(errorstr:format(i, ch[b:sub(1, 1)], type(a)), 3)
в параметр b не передается так #array
он ровняется nil
все всем спасибо

Google

Mirocow
30.01.2017
12:03:03
чекер работает на 5.3 c ошибками
а именно не верно передается 2 параметр метода
всем спасибо

Ilya
30.01.2017
12:13:27
Есть кто lapis юзает?

Mirocow
30.01.2017
12:15:52
а есть возможность замерить время выполнгения скрипта в луа?

Alexander
30.01.2017
12:17:20
posix.sys.time
posix.sys.times

Mirocow
30.01.2017
12:24:51
local cellCount = array_product(positionsCount)
if #cellCount == 0 then
return false
end
так нельзя? а как можно
for i=0, #cellCount do
end
так нельзя делать?

Alexander
30.01.2017
12:33:46
for i=1, ...
по умолчанию индексы с 1 начинаются

Mirocow
30.01.2017
12:34:23
redis1.lua:61: attempt to get length of local 'cellCount' (a number value)
stack traceback:
redis1.lua:61: in main chunk

Mirocow
30.01.2017
12:34:35
так ошибка же в cellCount

Alexander
30.01.2017
12:35:19
какого типа cellCount ?

Mirocow
30.01.2017
12:35:35
table

Alexander
30.01.2017
12:36:00
в таблице есть элементы, пронумерованные последовательно от 1 до ххх без перерыва?

Mirocow
30.01.2017
12:36:09
да

Alexander
30.01.2017
12:36:43
точно-точно?
используй debug.dump, посмотри сам для себя

Mirocow
30.01.2017
12:37:02
ага понял
спасибо

Google

Mirocow
30.01.2017
20:22:00
все понял, все получилось. всем спасибо

Alexander
30.01.2017
20:22:14
?

Mirocow
31.01.2017
14:18:40
всем привет. подскажите билиотеку для lua желательно на c для работы с огромными таблицами. несколько сотен миллионов элементов
метод нужен chunk или split

Мерлин
31.01.2017
14:37:46

Mirocow
31.01.2017
14:38:11
мне не бд нужно
мне нужно поделить массив на несколько массивов и раскидать их по тредам

Мерлин
31.01.2017
14:41:00

Admin
ERROR: S client not available

Mirocow
31.01.2017
14:41:14
lanes?

Мерлин
31.01.2017
14:41:52
И на размерностях таблиц в миллионы строк ты заколдобишься

Mirocow
31.01.2017
14:42:00
я знаю что в языке нет, я и спрашиваю либу на си для луа, в которой реализована работа с массивами

Мерлин
31.01.2017
14:42:01

Mirocow
31.01.2017
14:43:54
вот есть такая https://luarocks.org/modules/siffiejoe/table.n
но там сплита нет
а какой самы быстрый способ поделить массив / таблицу на чанки?

Мерлин
31.01.2017
14:45:40

Mirocow
31.01.2017
14:45:58
спс
не получилось найти?

Мерлин
31.01.2017
18:36:35
не получилось найти?
Нет, но там в принципе просто
function slice(array, a, b)
b = b or #array
if b < 0 then
b = #array + b
end
local len = b - a
return setmetatable({}, {
__ index = function(_, i)
if i < len and i > a then
return nil
end
return array[a + i]
end,
__ newindex = function(_, i, v)
if i < len and i > 0 then
array[a + i] = v
end
end,
})
end

Google

Мерлин
31.01.2017
18:36:41
Как-то так
Хотя по-моему я раньше через rawset делал

Snusmumriken
31.01.2017
18:41:31
Ух как сложно :3
И сразу теряется возможность итераций, длина и ещё куча массиво-фигни.
Могу предложить вариант возврата хендлера с набором мета-методов, который хранит в себе собственные границы массива, дёргает свой pairs/ipairs, свою длину и всё такое, ну, и на newindex - делает примерно то же что и та лабуда, только чуть сложнее. Правда, проблемы с распараллеливанием по настоящим потокам, а так же, с удалением основного массива, то есть, он по-настоящему удалится только в том случае, если удалить все хендлеры, продолжая полностью висеть в оперативке в обратном. Тут поможет связь с хендлером через режим метатаблицы {__mode = 'kv'}, удаляющий связь с основным массивом и проверки на существование массивов внутри хендлеров.

Mirocow
31.01.2017
19:18:09
так я хотел на си возложить
как на луа сделать я знаю
но спасибо

Snusmumriken
31.01.2017
19:18:46
Ну, тогда напиши .dll/.so-ку. Это довольно просто, правда, тут проблемы с либами, с которыми компилить.

Мерлин
31.01.2017
19:29:01

Mirocow
31.01.2017
19:29:32
а на лау есть?

yegorf1
31.01.2017
19:29:45
Неа

Mirocow
31.01.2017
19:29:52
а это https://github.com/LuaLanes/lanes

yegorf1
31.01.2017
19:29:52
Это питоновское

Mirocow
31.01.2017
19:30:12
упс

Мерлин
31.01.2017
19:30:28
а на лау есть?
Вместо numba - luajit
Вместо остального есть недоразвитые реализации

Snusmumriken
31.01.2017
19:31:21
Есть ещё SDL, предоставляющий любой обёртке вокруг него натуральные тяжёлые трэды.

Мерлин
31.01.2017
19:31:21
Круче питона для чиселок и даты имхо только математика, но она тяжелая и дорогая, зараза

yegorf1
31.01.2017
19:31:50
Смотря какая цель
Если быстро, то питон вообще не про это

Snusmumriken
31.01.2017
19:34:27
Хе-хе

Мерлин
31.01.2017
19:36:13
Смотря какая цель
Если быстро, то питон вообще не про это
Когда дело касается чиселок, то питон - это очень удобная обертка над сишечкой
Так что пишем прототип на жупайтере, а потом если надо (что редко) фигачим на eigen
Но так как чиселки нужно обычно дробить один раз, то питон - очень ок

yegorf1
31.01.2017
19:39:58
Что-то как-то жутко
И кажется медленно