@ProLua

Страница 41 из 307
Alex Фэils?︙
23.01.2017
16:09:33
не. тут онтоп беседа

Snusmumriken
23.01.2017
16:09:38
Ой нафлудили )
Нужно больше флуда : 3

Alejandro
23.01.2017
16:09:46
Нафлудили онтоп )

Google
Alex Фэils?︙
23.01.2017
16:10:03
Snusmumriken
23.01.2017
16:11:30
Alejandro
23.01.2017
16:12:28
https://github.com/rjpcomputing/luaforwindows/blob/master/README.md

Все видели?

Alex Фэils?︙
23.01.2017
16:12:40
а, импульсы

ну это просто

меня больше парят моменты инерции

вот с ними я не вкурил чот)

Snusmumriken
23.01.2017
16:15:04
Ситуация жидкого вакуума, какая инерция? : 3 Хотя она моделируется множителями скалярного произведения к нормали поверхности, об которую производится трение, и коэффициентами трения.

Alejandro
23.01.2017
16:15:34
Да вообще просто

Snusmumriken
23.01.2017
16:16:29
Да вообще просто
Тут тупая эрудиция и математика девятого класса. Если открыть учебник по физике - можно сразу вспомнить, и это объективно просто. Особенно учитывая то, что мы программируем и можем ошибаться сколько угодно раз : 3 Сдавать это на экзаменах, когда нет источников информации и неизвестен ответ - гораздо сложнее.

https://github.com/rjpcomputing/luaforwindows/blob/master/README.md
Огромная-огромная сборная солянка. Держу в загашнике, ворую откуда отдельные либы, когда в них возникает потребность.

Google
Snusmumriken
23.01.2017
16:34:40
Тем более, что в луа goto не бездумный опасный jump как в Си setjmp, а структурно ограниченный
Это все равно не повод его безумно использовать, вроде кучи меток на одном маленьком участке кода.

Влад
24.01.2017
13:54:23
всем привет. есть скрипт на LUA, который запускается как lua /root/unwired_smarthome/router.lua, т.е. не из папки в которой скрипт, а из другого места. В скрипте загруаются сторонние файлы. Если с библиотеками в системных папкам все понятно, то вот с файлами, которые должны лежать рядом со скриптом, не очень понятно, как их загрузить. т.е. делаю local version = require("version"), который лежит рядом (/root/unwired_smarthome/version.lua), и он его не видит, так как текущий PATH "/". Попробовал сделать LUA_PATH="/root/unwired_smarthome/?.lua", но тогда он перестает находить системные библиотеки. Хардкодить путь к нему внутри файла — не варинт, хочу, чтобы было переносимое.

Snusmumriken
24.01.2017
14:02:52
package.path = package.path..';/root/unwired_smarthome/?.lua' Ну, а если заводишь через интерпретатор и хочешь автоматизации - package.path = package.path..';'..(...)..'/?.lua' Мне нравится как это выглядит из-за обилия точек.

Snusmumriken
24.01.2017
14:08:36
А в чём проблема?

Alexander
24.01.2017
14:08:53
вот демо-пример $ lua /tmp/ttt/test.lua /tmp/ttt/ $ cat /tmp/ttt/test.lua print (debug.getinfo(1).source:match("@?(.*/)")) $

и получающуюся строку прикрепляем в package.path

полная автоматизация

$ pwd /home/asa $ cat /tmp/ttt/test.lua package.path = package.path..';'..(debug.getinfo(1).source:match("@?(.*/)")) print (package.path) $ lua /tmp/ttt/test.lua ./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/tmp/ttt/

Snusmumriken
24.01.2017
14:13:10
и получающуюся строку прикрепляем в package.path
'...' - то же самое :) Первый аргумент, который посылается скрипту при запуске с интерпретатора - путь до файла.

Alexander
24.01.2017
14:13:31
а будет разница между (...) и debug.getinfo(1) при обращении внутри подключаемого модуля в другом каталоге?

Влад
24.01.2017
14:47:17
у, спасибо!

Snusmumriken
24.01.2017
14:55:42
в твоем случае путь зашивается жестко внутрь скрипта
Напротив, если мы меняем путь скрипта и прописываем ту фигню с '...' оказывается всегда актуальным путём до скрипта, откуда можно подгребать либки.

Alexander
24.01.2017
14:56:20
☝️ я потому и решил, что универсального рецепта у тебя нет

Snusmumriken
24.01.2017
14:56:38
Первую часть - как костыль, чтобы быстро тестить : 3

Google
Alexander
24.01.2017
14:57:08
если подключаем модуль в другом каталоге, и он будет вызывать либо (...) либо debug.getinfo, он получит разные результаты и какие именно?

я могу проверить сам, конечно, но пока лень

Snusmumriken
24.01.2017
14:59:37
Итак, что тут вообще происходит: Первый модуль, который запускается интерпретатором, в "..." получает путь до файла и дополнительные аргументы при запуске. Если этот модуль дёргает другие модули - те получают то, что вызывалось в require. Таким образом, можно выяснить путь до модуля, допустим, в основном файле заводим табличку arg, и пихаем туда "...". Тогда путь во вспомогательном файле - arg[1]..'/'..(...) Лично я стараюсь не использовать дебажную либу, ибо она может влиять сразу на всё.

Alexander
24.01.2017
15:00:16
а из самого модуля не узнать?

Snusmumriken
24.01.2017
15:01:53
Узнать, но можно ошибиться если он внезапно находится не по пути с основным файлом. За этим уже ты следишь.

Карочи: main: arg = {...} require'folder_in_place_with_main/scr' scr: print('path of current file: '..arg[1]..'/'..(...)) Напечатает: c:/folder_with_main/folder_in_place_with_main/scr Ну, в юниксах - что-то вроде /home/documents/folder_with_main/folder_in_place_with_main/scr

Alexander
24.01.2017
15:05:18
а, понятно! у модулей внутри (...) будет относительный путь от вызывающего

Snusmumriken
24.01.2017
15:05:22
Дыа, включая их имя, без формата ".lua".

Alexander
24.01.2017
15:05:44
пасиба )

Snusmumriken
24.01.2017
15:10:52
Собсно, '...' это список аргументов при вызове. Первые пять аргументов можно получить, например, так: a, b, c, d, e = ... Пихнуть сразу все в табличку - tbl = {...} - это типичное преобразование кортежа (скрытый тип данных lua) в таблицу. Обратно, из таблицы в кортеж - unpack: a, b, c, d, e = unpack{1, 2, 3, 4, 5} Использование со скобками (...) - вытаскивание первого элемента кортежа. Я к тому, что можно запускать файлы с дополнительными ключами: > lua c:/path_to_script/file.lua bla-bla YourMommyTooFat А в самом скрипте: arg1, arg2, arg3 = ... Теперь arg1 = 'c:/path_to_script/' arg2 = bla-bla arg3 = YourMommyTooFat Типа того.

TheRainwildsKeeper
24.01.2017
15:32:01
нафиг нафиг
Аргументируй

Snusmumriken
24.01.2017
15:32:54
Тут уже всё аргументировано, перечитай :)

Мерлин
24.01.2017
17:18:36
https://twitter.com/Soukhinov/status/823506003018862594

Snusmumriken
24.01.2017
17:35:56
Очередной 0x5f3759df? Можно попробовать подогнать ещё ближе.

kapkapbopoh
25.01.2017
10:05:19
Что по луа почитать ( планирую на нем писать скрипты/плагины/аддоны для игр )?

Alexey
25.01.2017
10:06:56
Книги.

Snusmumriken
25.01.2017
10:19:04
Что по луа почитать ( планирую на нем писать скрипты/плагины/аддоны для игр )?
Роберто Иерузалимски - как классика, http://tylerneylon.com/a/learn-lua/ - как краткий справочник

Alexander
25.01.2017
10:23:16
Иерусалимский, а живёт в Бразилии. Мир странно устроен)

Snusmumriken
25.01.2017
10:23:59
Зато доцент католического университета, так что несёт миссионерскую ношу бразильским студентам.

Google
Mirocow
26.01.2017
13:44:34
Всем привет

как вычислить array size на lua 5.3

Admin
ERROR: S client not available

Alexander
26.01.2017
13:45:02
что есть array size ?

Mirocow
26.01.2017
13:45:16
размер массива

Alexander
26.01.2017
13:45:27
*как* ты его определишь

Mirocow
26.01.2017
13:45:37
a = {}

Alexander
26.01.2017
13:46:20
a = {}
есть операция`#a` она тебя не удовлетворяет?

Mirocow
26.01.2017
13:46:44
а где прочитать

Alexander
26.01.2017
13:46:54
в справке по языку

Mirocow
26.01.2017
13:47:08
там только так table.getn(a)

Alexander
26.01.2017
13:47:20
где "там" ?

Mirocow
26.01.2017
13:47:27
https://www.lua.org/pil/19.1.html

как-бы официальная дока

Alexander
26.01.2017
13:48:42
это *книга* от автора языка, а не дока

Mirocow
26.01.2017
13:48:57
а можешь сказать где прочитать доку

Alexander
26.01.2017
13:49:27
http://www.lua.org/manual/5.3/manual.html#3.4.7

поправил ссылку, указывает на оператор #

Mirocow
26.01.2017
13:50:46
a.__len

иль я чет путаю?

Google
Alexander
26.01.2017
13:51:50
и там есть важная оговорка - этот оператор по умолчанию возвращает длину наибольшей непрерывной пронумерованной последовательности элементов от единицы. все остальное в подсчете игнорируется .

Mirocow
26.01.2017
13:52:59
for i,a in ipairs(dimensions) do positionsCount[i] = a.__len end

иль я неверно понял?

Alexander
26.01.2017
13:53:12
ну __len - это то же самое что и #

Mirocow
26.01.2017
13:53:40
но этож перебор и он должен долгий быть

Alexander
26.01.2017
13:53:52
Mirocow
26.01.2017
13:56:14
чет nil выводит

Alexander
26.01.2017
13:56:28
если ты хочешь знать количество всех элементов таблицы, и не хочешь связываться с перебором элементов таблицы, то тебе надо написать свой метаметод присваивания (другими словами, переопределить оператор присваивания элементу таблицы), и считать в нем

а что внутри dimensions ?

Mirocow
26.01.2017
13:56:56
массив масивов

local dimensions = { getBigArray(1500), getBigArray(150), getBigArray(15), getBigArray(3) }

Alexander
26.01.2017
13:57:16
ага, и ты хочешь знать длину каждого входящего массива?

Mirocow
26.01.2017
13:57:21
да

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