Roy
Кстати, а почему LuaJIT застрял на старых луа?
Roy
Авторы спились или что?
mva
http://lua-users.org/lists/lua-l/2018-07/msg00683.html
mva
mva
всего один
mva
и код в режиме "я забодался девелопить, но принимаю патчи и донаты"
Roy
Это при том что LuaJIT так популярен
mva
впрочем, китайцы из Openresty/CloudFlare его пытались форкнуть
mva
и вроде что-то там пилят и бекпортят изменения из "старого" апстрима
Roy
mva
но там тоже на 5.1 всё
Roy
Китайцы любят велосипедить в прошлое
mva
раньше обоснованием было "бОльшая часть когда на 5.1, проэтому нет смысла нам менять синтаксис"
Roy
mva
а сейчас - "весь код под luajit Итак сделан с упором на 5.1 и если менять - всё поломается".
Roy
Roy
Выше Александр же сказал, что я шизойд на тему оптимизации
mva
нет
mva
ещё раз, преждевременные оптимизации != оптимизации
Roy
Це вопрос просто про оптимизацию таблиц, глобальный вопрос без конкретики
mva
опять, нет
mva
таблицы от этого никак не оптимизируются
Highly Likely
Roy
Roy
От батона до г*нд*на
Roy
Roy
В С++ в стандарте хеш мапа есть, правда она не хранит любые типы, но можно заюзать std::any или std::variant и хранить че угодно
Roy
без ооп
mva
хранить - можно
mva
но попробуй без объявления указателя и без ООП сделать так чтобы замена значения переменной влияла на содержимое другой переменной
mva
так, я кажется понял
mva
ты зацепился за слово "ссылка" и считаешь что lua создаёт тебе указатель
mva
но нет, в отличие от крестов lua язык с динамической типизацией. И перменная ПЕРЕИНИЦИАЛИЗИРУЕТСЯ (и её тип ПЕРЕОПРЕДЕЛЯЕТСЯ) каждый раз при присвоении ей значения
Roy
Roy
Не удивительно что оно может быть чем угодно
Highly Likely
Roy
В С++ значение тоже может быть чем угодно
mva
только при инициализации
Roy
Пишешь обертку, используешь alligned_storage и у тебя есть массив из N байт
Roy
и пихай туда что хочешь
mva
в рантайме переинициализировать переменную в другйо тип нельзя
mva
Roy
mva
если говорить in general, то даже "auto" дайт только то, что компилятор угадывает как его объявить при инициализации
mva
Ну это конечно
ну так а ты ровно это и делаешь когда присваивешь что-то той переменной wtf
Highly Likely
int i = 1;
i = “hi” <— error
Roy
На плюсах подобное делается путем создания какой нибудь рефлексии
Roy
По сути, это можно сделать, но дорогое удовольствие
Roy
Слишком много строк юзается
Highly Likely
int *p;
int var = 20;
p = &var;
p = var; <- error
Highly Likely
(Возможно инт не самый удачный пример, учитывая арифметику, но да не суть)
Roy
Ну по сути никто не запрещает юзать variant и any
Roy
Один хер тот же луа тоже ограничен задумкой автора
mva
только при использовании C API
mva
если ограничиваться Pure-Lua API, то некоторые непреодолимые ограничения таки есть
Roy
Roy
Понадежней чем void'ы дрочить
Highly Likely
Последние стандарты ++ — костыль на костыле
Roy
Highly Likely
Так что это уж точно не лучший язык чтоб приводить в пример :)
Highly Likely
Roy
Да ладно, не прибедняйся
Roy
Все мы знаем что плюсы тащат на себе младшего брата - инвалида (Си)
mva
Roy
каким, интересно, раком?
Таким, что поддерживают Си и поэтому вынуждены пилить стандарты с ориентиром на то, что Сишное не отвалится
mva
и, кстати, да, почему "младшего", если таки старшего?
Roy
Highly Likely
Сишка вот прекрасна. 120 кейвордов и всё :)
mva