@ProLua

Страница 44 из 307
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
извините

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
array в этом примере - название переменной, которая ссылается на таблицу с реализованными методами типа slice и остальными.
кстати, для ясности - в луа "метод" - это обычная переменная, которая ссылается на функцию. то есть mytable.var = 12 print(mytable.var) mytable.var = function(self) return 12 end print(mytable:var()) выдадут одинаково 12

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
мне нужно поделить массив на несколько массивов и раскидать их по тредам
Готовой функции для этого нет, как нет и тредов в lua (

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
я знаю что в языке нет, я и спрашиваю либу на си для луа, в которой реализована работа с массивами

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
так я хотел на си возложить
Вообще, если у тебя не torch и немного ещё написано кода, то возьми лучше питон и numpy + numba

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
Что-то как-то жутко

И кажется медленно

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