Pull to refresh
94
0
Александр Гладыш @agladysh

User

Send message
Lua даже не знает, что индексы массива — числа в диапазоне 1..n, а значения — целые числа, поэтому ему приходится рассчитывать на худший вариант когда однажды в массив запишут вот так:

a['qqq'] = {red = 1, green = 0.5, blue = 0.8}


Это, мягко говоря, неверно. В реализации таблиц в Луа есть оптимизация для поддержки массивов с целочисленными ключами. С этим там хорошо и быстро.
Рекомендую всё-таки отправить этот ответ в луашную рассылку. Иначе очень странная переписка получится :-)
Да, это фича LuaJIT 2, начиная с beta6. См. luajit.org/ext_ffi.html и соседние топики в меню слева.

Майк сожалеет, но у него сейчас недостаточно времени, чтобы отвечать на Хабре.

Он читает письма и отвечает на вопросы в официальной рассылке Луа (на английском): www.lua.org/lua-l.html

По-русски вопросы Майку можно задавать, например, через меня.
Тред про этот хабратопик в Луашной рассылке:

thread.gmane.org/gmane.comp.lang.lua.general/75252

Мнение Майка Палла, автора LuaJIT:

article.gmane.org/gmane.comp.lang.lua.general/75265
Ещё бы ssh на Йоте не рвался, было бы вообще замечательно…
Выложили lua-5.2.0-work3:

www.lua.org/work/
Какое-то время назад был большой хайп вокруг Kill-A-Watt. Даже в MythBusters показывали:

en.wikipedia.org/wiki/Kill_A_Watt
Обсуждение на Роеме с полезными ссылками в комментах:

roem.ru/2010/04/19/addednews14427/
Вот обсуждение на RSDN, вроде бы здесь не упоминалось. Говорят, по ссылкам из писем набор эксплоитов сидит под конкретные браузеры.

rsdn.ru/forum/life/3777931.flat.aspx
Мне тоже таких писем с других аккаунтов насыпалось. :(
(Свой пока вроде цел)
Англоязычный вариант — с двумя «t», «ditto».

en.wiktionary.org/wiki/ditto
Одна из моих самых любимых книг.
Вот отличное издание на английском, если вдруг кто-то хочет прочесть в оригинале.
www.amazon.com/Classic-Feynman-Adventures-Curious-Character/dp/0393061329/
> При записи на языке программирования, вам приходится думать по одному символу за раз:
> «i-n-t e-f-f-e-c-t-i-v-e-n-e-s-s = p-o-w-e-r * (s-u-r-p-r-i-s-e? 3: 2);».

Думать по одному символу за раз? Это как?

У меня набором кода обычно руки занимаются, голова о наборе символов не думает.

ИМХО, изучение слепой печати эффективнее любого «мышиного» интерфейса.

Да, кривая обучения гораздо круче. Но это как с карандашом — десять лет учишься им пользоваться, потом всю жизнь используешь не замечая.
«Чудесный ребёнок»? Наверное имеется в виду «вундеркинд».
Обновил описание lua_version() и luaL_checkversion(). Оказывается, крайне полезные функции.
Уверен, стесняться здесь нечего. ;-)
Источник цитат можно?
Ну… Всё, что можно сделать на Луашном API, можно сделать и в Си :-)
Будут проблемы — добро пожаловать в Луашную рассылку, поможем.

www.lua.org/lua-l.html
Ненадёжный код нужно помещать в песочницу. (По-хорошему ещё нужно ограничивать память через lua_setallocf и время выполнения через debug.sethook, этого по ссылке нет.)

Если нужно только перехватывать «нелегальные» глобальные переменные (а это полезно делать всегда, не только в песочнице), то нужно повесить на глобальное окружение (это же табличка на самом деле) хитрую метатаблицу, которая будет в __index и __newindex перехватывать обращения и проверять их.

См. etc/script.lua в луашном дистрибутиве. (Здесь — версия, которой я пользуюсь)

Подробнее про проблему можно почитать здесь.
Переменные в скриптах в Lua в принципе нужно объявлять как local. Иначе они глобальные. Со всеми вытекающими.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity