
Alex Фэils?︙
23.01.2017
16:09:33
не. тут онтоп беседа

Snusmumriken
23.01.2017
16:09:38

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

Alex Фэils?︙
23.01.2017
16:09:58

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
Сдавать это на экзаменах, когда нет источников информации и неизвестен ответ - гораздо сложнее.

Google

Snusmumriken
23.01.2017
16:34:40

Влад
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", но тогда он перестает находить системные библиотеки.
Хардкодить путь к нему внутри файла — не варинт, хочу, чтобы было переносимое.


TheRainwildsKeeper
24.01.2017
13:59:18
всем привет.
есть скрипт на LUA, который запускается как lua /root/unwired_smarthome/router.lua, т.е. не из папки в которой скрипт, а из другого места. В скрипте загруаются сторонние файлы. Если с библиотеками в системных папкам все понятно, то вот с файлами, которые должны лежать рядом со скриптом, не очень понятно, как их загрузить.
т.е. делаю local version = require("version"), который лежит рядом (/root/unwired_smarthome/version.lua), и он его не видит, так как текущий PATH "/". Попробовал сделать LUA_PATH="/root/unwired_smarthome/?.lua", но тогда он перестает находить системные библиотеки.
Хардкодить путь к нему внутри файла — не варинт, хочу, чтобы было переносимое.
https://stackoverflow.com/questions/8561659/lua-change-current-working-dir-linux-without-lfs-or-any-non-std-modules


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

Alexander
24.01.2017
14:08:12

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

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

Alexander
24.01.2017
14:56:55

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

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
да