История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда ибо ты неизбежно начнёшь использовать специфичные штуки так как тебе плевать установлена ли lua на ОС в принципе, другие версии для тебя не сущетвуют и любые различия тоже, если же ты пишешь на луа как просто на луа то всегда можешь запустить на той версии для котрой у тебя твой скрипт, а если этой версии нету то это невозможно, если есть любая одна значит есть любая другая (ну в смысле установить/собрать можно). Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =) Ну насколько я понял, я только вливаюсь. Может чево путаю =)
А так хотелось бы преемственности конечно, но это если смотреть на Lua как самостоятельный язык, но это не так, lua всегда сама по себе «сопрограмма» для основной хост программы =) Хотя и хочется думать что это не так, а это так. Поэтому как самостоятельный язык так себе ибо чехарда с версиями, там ещё и ABI ваще на любом миноре ломается, биндинги к либам от 5.1 не пашут на 5.3 :D Жесть
https://cs12.pikabu.ru/images/big_size_comm/2022-06_3/1655185086149525468.jpg
На самом деле у меня уже от этого всего неделю пукан горит… Простите =)
Исправление LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда ибо ты неизбежно начнёшь использовать специфичные штуки так как тебе плевать установлена ли lua на ОС в принципе, другие версии для тебя не сущетвуют и любые различия тоже, если же ты пишешь на луа как просто на луа то всегда можешь запустить на той версии для котрой у тебя твой скрипт, а если этой версии нету то это невозможно, если есть любая одна значит есть любая другая (ну в смысле установить/собрать можно). Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =) Ну насколько я понял, я только вливаюсь. Может чево путаю =)
А так хотелось бы преемственности конечно, но это если смотреть на Lua как самостоятельный язык, но это не так, lua всегда сама по себе «сопрограмма» для основной хост программы =) Хотя и хочется думать что это не так, а это так. Поэтому как самостоятельный язык так себе ибо чехарда с версиями, там ещё и ABI ваще на любом миноре ломается, биндинги к либам от 5.1 не пашут на 5.3 :D Жесть
https://cs12.pikabu.ru/images/big_size_comm/2022-06_3/1655185086149525468.jpg
Исправление LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда ибо ты неизбежно начнёшь использовать специфичные штуки так как тебе плевать установлена ли lua на ОС в принципе, другие версии для тебя не сущетвуют и любые различия тоже, если же ты пишешь на луа как просто на луа то всегда можешь запустить на той версии для котрой у тебя твой скрипт, а если этой версии нету то это невозможно, если есть любая одна значит есть любая другая (ну в смысле установить/собрать можно). Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =) Ну насколько я понял, я только вливаюсь. Может чево путаю =)
А так хотелось бы преемственности конечно, но это если смотреть на Lua как самостоятельный язык, но это не так, lua всегда сама по себе «сопрограмма» для основной хост программы =) Хотя и хочется думать что это не так, а это так. Поэтому как самостоятельный язык так себе ибо чехарда с версиями, там ещё и ABI ваще на любом миноре ломается, биндинги к либам от 5.1 не пашут на 5.3 :D Жесть
Исправление LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда ибо ты неизбежно начнёшь использовать специфичные штуки так как тебе плевать установлена ли lua на ОС в принципе, другие версии для тебя не сущетвуют и любые различия тоже, если же ты пишешь на луа как просто на луа то всегда можешь запустить на той версии для котрой у тебя твой скрипт, а если этой версии нету то это невозможно, если есть любая одна значит есть любая другая (ну в смысле установить/собрать можно). Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =) Ну насколько я понял, я только вливаюсь. Может чево путаю =)
А так хотелось бы преемственности конечно, но это если смотреть на Lua как самостоятельный язык, но это не так, lua всегда сама по себе «сопрограмма» для основной хост программы =) Хотя и хочется думать что это не так, а это так.
Исправление LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда, другие версии для тебя не сущетвуют и любые различия тоже. Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =) Ну насколько я понял, я только вливаюсь. Может чево путаю =)
А так хотелось бы преемственности конечно, но это если смотреть на Lua как самостоятельный язык, но это не так, lua всегда сама по себе «сопрограмма» для основной хост программы =) Хотя и хочется думать что это не так, а это так.
Исправление LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда, другие версии для тебя не сущетвуют и любые различия тоже. Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =) Ну насколько я понял, я только вливаюсь. Может чево путаю =)
Исправление LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда, другие версии для тебя не сущетвуют и любые различия тоже. Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.
Понятие «совместимость» в lua это такое себе, полумифическое. Как бы вроде есть, только вот не для, а вопреки =)
Исходная версия LINUX-ORG-RU, :
Не будем же считать, что ловля SIGINT в языке Lua - это UB.
Lua может работать там где понятие сигналов просто не существует. Это зависит от программы хоста которая ловит сигнал и посылает hook в lua машину. Сама по себе Lua ни про какие сигналы понятия не имеет, как и любой язык.
Т.е. в LuaJit кривая реализация.
А вот тут сложнее, не кривая, а настоящая, нативная. Если мне бошку не отшибло там хост процесс прыгает по стекам, тоесть если ты на си чистом корутины сделаешь через прыжки по стекам то получишь тоже самое, а это оно там и есть. А ванильная луа, просто поочерёдно исполняет байткод в lua машине и это будет работать даже там где операционной системы как таковой нету.
Опять же если ты пишешь под luajit то ты забываешь про существование любой другой lua в принципе. Подразумевается что ты вшиваешь lua в свою программу и какую вшил с той ты на всегда, другие версии для тебя не сущетвуют и любые различия тоже. Так что обратная несовместимость хоть и плохо что есть, но она логична. Чво вшил то у тебя и есть. Даже байткод у всех lua разный и привязан к конкретной версии.