Previous Entry Share Next Entry
2016-01

JavaScript-на-Lua, продолжение

Итак, прошла неделя, 2411 2850 тестов проходят, работают всякие JSON.stringify/JSON.parse (ну, Крокфордовские, написанные на pure js, в смысле), часть бенчмарков, геттеры-сеттеры, то-сё.

Начало наконец-то подзаебывать! И да, теперь я еще более знаю JavaScript и местами меньше его люблю, ггг.

Всё-таки страшно переусложненная спека. Вот .NET CLR "из говна и палок" пишется за полтора вечера, а тут я до похожего состояния неделю код фигачил.

Ну то есть я безжалостно конечно срезал углы и там и там, но если в случае с MSIL это просто пыщь - и рантайм сразу скрэшился, то тут у тебя какой-нибудь каст ты проебал сделать или забил, оно диспатчнулось куда-то и обосрало весь хип, а потом уже всплыло.

Не хватает RegExp и Date. С регексами надо явно что-то прилинковать. Но блииин, хотел же на pure Lua. А нету. И на JS нету. Надо как-то удержаться не писать свой движок регексов, этого только не хватало :-D

С одной стороны, стало на большинстве тестов медленнее V8. С другой стороны... я удивлён, что так далеко смог уехать на однопроходном трансляторе, у которого ни IR, ни бектрекинга нету, просто строки конкатенируются. Пора перестать эмитировать по замыканию на каждое присваивание и short-cutting оператор, что ли...

(А, и еще я наконец-то понял, почему те, кто делают JS-движки, так пытаются отсоветовать использование with!)

Из смешного:
Lua: bench/v8/crypto.lua:2539: main function has more than 200 local variables. Что одни хороши, что вторые.

This entry was originally posted at http://wizzard.dreamwidth.org/417687.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
maxim January 19th, 2015
Я бы лучше написал плагин к Хрому чтобы можно было манипуляции с DOM делать на чистом Lua :-)
Или на Erlang.

wizzard0 January 19th, 2015
Трансляторы луа в жс есть, например.

maxim January 19th, 2015
Есть, и ты такой пишешь :-)
Но это не продвигает lua, а только его закапывает.
А вот если бы нативный плагин к браузеру и его DOM ивентингу прикрутить это было бы реальное покушение на JavaScript.

wizzard0 January 19th, 2015
Здрасте, я пишу транслятор жс в луа.

maxim January 19th, 2015
Ну я ж говорю: из пустого в порожнее :-)

wizzard0 January 19th, 2015
Ну спасибо :)

maxim January 19th, 2015
Я по-умолчанию тебя поддерживаю и одобряю :-)
Фановые проекты это же отдохновение, реклаксация и рефреш.
Я это все пишу, чтобы зародить дискуссию по моему вопросу.

     Нативный lua в кастомном браузере.

Edited at 2015-01-19 09:38 pm (UTC)

wizzard0 January 19th, 2015
А, так свой браузер — это совсем другое. И проблемы там другие, нежели просто выбор между JavaScript и чем-то еще

naziranni January 21st, 2015
LuaKit что-ли?

maxim January 21st, 2015
Fuck Yeah! Оно! :-)

wizzard0 January 19th, 2015
> реальное покушение на JavaScript.

Данунафиг. Давай, я приду к тебе с тремя девайсами, и ты покажешь, как в них прикрутить нативный плагин к браузеру.

Мобильный веб, вот это всё.

maxim January 19th, 2015
Путь в тысячу миль начинается с одного шага.

aka_rider January 20th, 2015
Наверное минимально интрузивное и быстрое - это написать модуль для lua, что-то типа js-compatibility. Все равно различия рантаймов нужно где-то отобразить.

  • 1
?

Log in

No account? Create an account