Wsevolod
С lluv будут два различных loop-а, смысл тогда
Pavel
а это много - 90000грн? я в гривнах не рублю
Pavel
примерно 250к
для тим-лида чет средне...
Pavel
забавно что почти все описание про хард-скилы,а не про софты...
usernameak
@Snusmumriken таки не ливнул!
Snusmumriken
Ага, я потому и предложил.
Snusmumriken
А с чего ливнул бы-то?
usernameak
да как то потребность в луа исчезла...
usernameak
зачем мне lua, если у меня в процессе есть целая JVM (а в JVM можно воткнуть почти всё кроме современного JS, в том числе и Lua (причём 5.2!))?
Snusmumriken
Ну типа мало ли, какие-то фишки подцепишь, будешь эксплуатировать. Правда, основная движуха в ЕЩЁ ОДНОМ соседнем флудо-чатике, но там куча некондишна со флудом.
Snusmumriken
Во! Меня дичайше напрягает питон своей работой с аргументами! Вот я хочу написать две функции: def foo(a, b, c): return a + b + c def bar(a, b): return a + b А потом вызывать, мол: func = foo if a % 2 == 0 else bar func(a, b, c) И оно меня пошлёт с попыткой вызова bar! Слишком много аргументов! Уууу!
usernameak
но вообще такая вещь как минимум делает плохо JIT'у)
Snusmumriken
Не, не делает. Просто будет две трассы. То же самое будет если добавить условие
Snusmumriken
Любое условие автоматом расщепляет трассу. В луажыте там получается ещё немного хитрее, слезание с трассы/переключение и возвращение на неё может быть почти бесшовным.
usernameak
сразу скажу: я не вникал в то, как работают JIT'ы у динамически типизированных языков)
usernameak
я не настоящий сварщик (c)
Snusmumriken
Ну кароч, трасса это кусок байткода, который очень часто повторяется и таки собрался. Все дополнительные условия добавляют в трассу проверку: надо ли с неё слезть и переключиться на нескомпилированный код или нет. Проверки тоже компиляются.
Snusmumriken
Кстати, jit тоже запрещён яблоком, потому что самомодификация и ваще надо компилятор в приложение встраивать ))0 Внутри luajit сидит tcc и компиляет.
usernameak
есть два вида платформ, закрытые и открытые :D
usernameak
есть два вида платформ, закрытые и открытые :D
причём есть одна катится из открытой в закрытую, а не наоборот — андроид
Snusmumriken
Кста, за счёт tcc, на луажыте можно писать по-настоящему на сишке на луях, если через ffi подрубить уже встроенный в неё tcc. Ну и разумеется, можно дёргать саму луа, открывать новые стейты, пихать в них код и уходить в рекурсию. Я тут видел некоторое дерьмо.
usernameak
это жёсткое дерьмо с запахом углепластика!
Luсky
Да. Круто!
Aydar
Во! Меня дичайше напрягает питон своей работой с аргументами! Вот я хочу написать две функции: def foo(a, b, c): return a + b + c def bar(a, b): return a + b А потом вызывать, мол: func = foo if a % 2 == 0 else bar func(a, b, c) И оно меня пошлёт с попыткой вызова bar! Слишком много аргументов! Уууу!
Так и должно быть не? Позиционные аргументы все обязательные по правилам языка, какое поведение по-твоему лучше? Чтобы аргументы были необязательными они должны быть именованные. Ну есть ещё один вариант вторая функция у тебя должна принимать a, b, *args например, но тогда ее логику надо переписывать. Не в защиту питона но ты странного хочешь.
Arslan
Пройдёт
anton
а как по другому это сделать?
anton
а что если там триллион раз нужно это повторить, каждый раз проверять условие?
anton
не, прикол в том, что иф ты сделаешь один раз, а потом в цикле будешь триллион раз вызывать нужную функцию
anton
я про случай, когда тебе не нужна эта проверка в каждой итерации, потом у тебя могут быть несколько вызовов этой функции, каждый раз иф писать?
anton
ну ок
anton
а если у тебя условие условие трёхэтажное, ты создашь видимо флаг сначала, и будешь его таскать везде
Snusmumriken
То что прописано по умолчанию в ffi — создано исключительно для ffi. Но компилятор tcc умеет компилять строки в оперативную память, и через ffi его можно подрубить.
Snusmumriken
Будет, но надо модифицировать функции )) А если я использую чьи-то библиотечные — надо вокруг них что-то оборачивать, фу.
Dmitry
ну да, тогда не выкрутишься)
Leon174
Еще интересней, что она уже была в закладках ((
Дмитрий
🐒
Dmitry
товарищи вопрос - вот я делаю os.execute('ls'), а как мне выдачу этого лс получить в луа?
Dmitry
да я видел этот ответ, мол записываем в файл, а потом через попен читаем
Dmitry
смутило что другого способа нет
Dmitry
типо как же так
Aydar
да я видел этот ответ, мол записываем в файл, а потом через попен читаем
Это не запись в файл. Это pipe, канал между двумя процессами через который они могут обмениваться информацией. https://ru.m.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D0%B9%D0%B5%D1%80_(Unix)
Dmitry
я думал делается так os.execute'ls > files.txt' files = io.popen'files.txt'
Александр
я думал делается так os.execute'ls > files.txt' files = io.popen'files.txt'
в таком примере popen как раз не нужен
Aydar
стоп то есть можно io.popen прямо стдоут им читать?
Да. local pipe = io.popen('/usr/bin/ls', 'r') local output = pipe:read('*all') pipe:close() print(output)
Aydar
я думал делается так os.execute'ls > files.txt' files = io.popen'files.txt'
Так тоже можно, только для чтения из файла надо применять io.open а не io.popen
Dmitry
Да. local pipe = io.popen('/usr/bin/ls', 'r') local output = pipe:read('*all') pipe:close() print(output)
не работает :/ пишет что пайп это нил. попробовал как у тебя и как у меня /usr/bin/ls, не хочет
Dmitry
тоже попробовал
Dmitry
https://www.gammon.com.au/scripts/doc.php?lua=io.popen
Dmitry
ща вот это буу пробовать
Dmitry
с ассертом почему-то работает
Aydar
с ассертом почему-то работает
Не может быть, assert просто проверяет на nil
Dmitry
пам пам пам ПААААААМ
Dmitry
я понял почему не работало
Dmitry
потому что я объявлял локал переменную
Dmitry
теперь вопрос почему
Dmitry
то есть x = io.popen('ls') -> file local x = io.popen('ls') -> nil
Александр
то есть x = io.popen('ls') -> file local x = io.popen('ls') -> nil
если ты делал это из REPL, то всё логично
Dmitry
я пишу локал в глобальном скоупе
Aydar
в терминале
Вот поэтому и не работает, каждая строчка в терминале исполняется как отдельный кусок кода, если ты создашь локальную переменную то к моменту начала ввода второй строки локальная переменная перестанет существовать.
Dmitry
окей, интересно
Dmitry
как питониста меня это удивляет))
Dmitry
но прикольно прикольно