Size: a a a

2020 February 03

I

Igor725 in pro.lua
Всё равно, позиция у него странная. Это всё равно, что сказать "ядро Linux 4.x перестало быть линуксом после появления ветки 5.x".
Хотя может он так и думает.
источник

S

Snusmumriken in pro.lua
Ну ды ))
источник

S

Snusmumriken in pro.lua
Мне пришлось сейчас ему объяснять суть версионирования. Интересно, зобанит или нет.
источник

AZ

Aydar Zarifullin in pro.lua
Snusmumriken
Мне пришлось сейчас ему объяснять суть версионирования. Интересно, зобанит или нет.
Глупо думать что он не понимает.
источник

AZ

Aydar Zarifullin in pro.lua
Он скорее просто топит за всё новое.
источник

S

Snusmumriken in pro.lua
Я видел как он общается. Кажется, и правда не понимает. Очень упёртый человек. Правда, ему столько лет, что не факт что он в принципе может стать гибче.
источник

AZ

Aydar Zarifullin in pro.lua
Snusmumriken
Я видел как он общается. Кажется, и правда не понимает. Очень упёртый человек. Правда, ему столько лет, что не факт что он в принципе может стать гибче.
Я видел как он общается только по топику "LuaJIT is not Lua" сложно судить по одному разу...
источник

S

Snusmumriken in pro.lua
Прост мне довелось года три назад поспорить с ним на этот счёт, и мне грозили баном, поэтому я такой: "ок, палехчи" ))
источник

LO

Lucky Ook in pro.lua
Толку-то с этих споров?
источник

LO

Lucky Ook in pro.lua
Одно дело - выяснять в процессе обсуждения подробности того, что и как работает, другое - эти вот религиозные срачики пустопорожние.
источник

PG

Pavel G in pro.lua
Roman Silin
Понял, спасибо) жаль что нет решения в самом luarocks.
Если стоит несколько версий Lua, то LuaRocks c ключиком —lua-version может ставить пакеты для нужной версии.
источник

PG

Pavel G in pro.lua
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке.
Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске.
Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
источник

I

Igor725 in pro.lua
Pavel G
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке.
Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске.
Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
Если приложение создаёт каждый раз новый luastate, то без модификации кода самого приложения ничего сделать не получится
источник

RS

Roman Silin in pro.lua
Pavel G
Если стоит несколько версий Lua, то LuaRocks c ключиком —lua-version может ставить пакеты для нужной версии.
Класс 👌
источник

AM

Alexey Melnichuck in pro.lua
Pavel G
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке.
Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске.
Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
Если это динамическая ли то кажется что она должно мапится в память один раз. Для луа файлов нужно их читать самостоятельно компилить и далее их подсовывать через prelod чтобы require работал
источник
2020 February 04

YG

Yuriy Gorlichenko in pro.lua
Pavel G
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке.
Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске.
Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
В астериске и Freeswitch  динамическое создание тредов на каждый новый звонок. Поэтому запуск luastate происходит в каждом вновь созданном потоке (которые генерится для каждого нового звонка).

nginx и kamailio сделаны по другому. Там luastate запускается один раз при старте на каждый поток - воркер, которые запускаются как пул в начале. соответсвенно и luastate запускается один раз
источник

DF

Dollar Føølish in pro.lua
В луа же есть кстати какое то вспоможение для разделяемых стейтов в одном. Типа Sol::thread

Это какая то хитрая штука или просто текущая корутина?
источник

PG

Pavel G in pro.lua
Yuriy Gorlichenko
В астериске и Freeswitch  динамическое создание тредов на каждый новый звонок. Поэтому запуск luastate происходит в каждом вновь созданном потоке (которые генерится для каждого нового звонка).

nginx и kamailio сделаны по другому. Там luastate запускается один раз при старте на каждый поток - воркер, которые запускаются как пул в начале. соответсвенно и luastate запускается один раз
Проверил - на каждый звонок в астериске 3 раза выполняется extensions.lua (дергал http.request из общей части конфига ).
источник

YG

Yuriy Gorlichenko in pro.lua
Pavel G
Проверил - на каждый звонок в астериске 3 раза выполняется extensions.lua (дергал http.request из общей части конфига ).
суть того, о чем я говорю в том, что luastate создается каждый раз. Соответственно коннект к сокетам, require и тд исполняются каждый раз

Сколько раз extensions.lua выполняется для вашего конкретного конфига - хз. В общем и целом он выполняется 1 раз, но если у вас там висят всякие hangup handlers то может и больше раз вызываеться
источник

PG

Pavel G in pro.lua
Yuriy Gorlichenko
суть того, о чем я говорю в том, что luastate создается каждый раз. Соответственно коннект к сокетам, require и тд исполняются каждый раз

Сколько раз extensions.lua выполняется для вашего конкретного конфига - хз. В общем и целом он выполняется 1 раз, но если у вас там висят всякие hangup handlers то может и больше раз вызываеться
Не 1 раз... в таком конфигe 3 раза подряд дергается http-запрос:
http = require("socket.http")
r = http.request("http://localhost:8080")

extensions = {
 ["test"] = {
   ["_X."] = function()
     app.answer()
     app.echo()
   end
 }
}
источник