Roy
Кстати, а почему LuaJIT застрял на старых луа?
Roy
Авторы спились или что?
mva
http://lua-users.org/lists/lua-l/2018-07/msg00683.html
mva
всего один
mva
и код в режиме "я забодался девелопить, но принимаю патчи и донаты"
Roy
Это при том что LuaJIT так популярен
Александр
Ну типа local wtf = reference(Table[id]) wtf = "govno"
А потом кто-то между этими двумя строчками изменит табличку Table..
mva
впрочем, китайцы из Openresty/CloudFlare его пытались форкнуть
mva
и вроде что-то там пилят и бекпортят изменения из "старого" апстрима
mva
но там тоже на 5.1 всё
Roy
Китайцы любят велосипедить в прошлое
mva
раньше обоснованием было "бОльшая часть когда на 5.1, проэтому нет смысла нам менять синтаксис"
mva
а сейчас - "весь код под luajit Итак сделан с упором на 5.1 и если менять - всё поломается".
Александр
Типа это может повлиять на реаллокацию?
Кто-то может вообще табличку снести. Ну, в твоём гипотетическом луа с функцией reference
mva
Ну типа local wtf = reference(Table[id]) wtf = "govno"
в общем ты перекладываешь проблему еправильной архитектуры на плечи языка т.е. вместо того чтобы изменить архитектуру логики в приожении на более правильную ты хочешь переписать движок языка
Roy
Выше Александр же сказал, что я шизойд на тему оптимизации
mva
нет
mva
ещё раз, преждевременные оптимизации != оптимизации
Roy
Це вопрос просто про оптимизацию таблиц, глобальный вопрос без конкретики
mva
опять, нет
mva
таблицы от этого никак не оптимизируются
Highly Likely
Ну типа local wtf = reference(Table[id]) wtf = "govno"
А приведи пример этого же кода на ++-ах :)
Roy
А приведи пример этого же кода на ++-ах :)
Там несколько способов это сделать
Roy
От батона до г*нд*на
mva
Там несколько способов это сделать
приведи хоть один. И если он будет с привлечением ООП, то ты проиграл
Roy
В С++ в стандарте хеш мапа есть, правда она не хранит любые типы, но можно заюзать std::any или std::variant и хранить че угодно
Roy
без ооп
mva
хранить - можно
mva
но попробуй без объявления указателя и без ООП сделать так чтобы замена значения переменной влияла на содержимое другой переменной
mva
так, я кажется понял
mva
ты зацепился за слово "ссылка" и считаешь что lua создаёт тебе указатель
Roy
так, я кажется понял
вообще не понял тебя
Highly Likely
ты зацепился за слово "ссылка" и считаешь что lua создаёт тебе указатель
Я давно хотел про это сказать и объяснить разницу, но чот я седня слишком устал и думать совсем не получается чтобы внятный пример написать
mva
но нет, в отличие от крестов lua язык с динамической типизацией. И перменная ПЕРЕИНИЦИАЛИЗИРУЕТСЯ (и её тип ПЕРЕОПРЕДЕЛЯЕТСЯ) каждый раз при присвоении ей значения
Roy
Не удивительно что оно может быть чем угодно
Roy
В С++ значение тоже может быть чем угодно
mva
только при инициализации
Roy
Пишешь обертку, используешь alligned_storage и у тебя есть массив из N байт
Roy
и пихай туда что хочешь
mva
в рантайме переинициализировать переменную в другйо тип нельзя
Highly Likely
только при инициализации
А как же войдовые указатели? :-)
mva
А как же войдовые указатели? :-)
ну, это уже частности
Highly Likely
ну, это уже частности
Ну формально тип у тебя переменной не меняется, так что ты прав
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
Highly Likely
Ну по сути никто не запрещает юзать variant и any
Это какой-то костыль, который притащили в ++ чисто чтоб НУ МОДНО ЖЕ
mva
если ограничиваться Pure-Lua API, то некоторые непреодолимые ограничения таки есть
Roy
Понадежней чем void'ы дрочить
Highly Likely
Последние стандарты ++ — костыль на костыле
Roy
Последние стандарты ++ — костыль на костыле
Последние стандарты - это все?)
Highly Likely
Так что это уж точно не лучший язык чтоб приводить в пример :)
Highly Likely
Последние стандарты - это все?)
Это все что после 14-го
Roy
Да ладно, не прибедняйся
mva
Это все что после 14-го
да я бы даже к 11 присмотрелся бы
Roy
Все мы знаем что плюсы тащат на себе младшего брата - инвалида (Си)
Highly Likely
да я бы даже к 11 присмотрелся бы
Я хотел сказать 11, да. Бес попутал :-)
Roy
каким, интересно, раком?
Таким, что поддерживают Си и поэтому вынуждены пилить стандарты с ориентиром на то, что Сишное не отвалится
mva
и, кстати, да, почему "младшего", если таки старшего?
Highly Likely
Сишка вот прекрасна. 120 кейвордов и всё :)