LINUX.ORG.RU

Lua Jit 2.0


1

5

Вышел компилятор для Lua — LuaJit 2.0.

Основные изменения для релиза были в исправлении багов.

Изменения и улучшения по сравнению с первой версией:

  • Возможность использования конверсии исключений C++ для всех платформ с помощью функций-обёрток.
  • Обёртки для libm функций.
  • Сборка static и shared библиотек на POSIX.
  • Компилирование рекурсивного кода.
  • Портирование интепретатора и JIT компилятора на x86-64.
  • Разметка текущего трейса, даже если компилятор не доступен.
  • Оптимизация для and/or операторов.

И много других здесь.

Также доступны бенчмарки.

>>> Подробности

anonymous

Проверено: catap ()
Последнее исправление: Binary (всего исправлений: 1)

Ответ на: комментарий от Int0l

lua - скриптовый язык, он не предназначен для больших вычислений

pftBest ★★★★
()
Ответ на: комментарий от Int0l

С появлением в lua ffi в нём можно посчитать хоть черта с рогами практически с нативной скоростью: поддерживаются сишные вызовы, структуры и библиотеки прямо внутри луа.

anonymous
()

Несколько вопросов:

1. Lua Jit по прежнему «совместим» с Lua 5.1? А как-же 5.2[.1]?

2. Lua Jit имеет собственный ffi, не совместимый с «оригинальным»? Т.е. воспользовавшись этим ffi возврат к оригинальному Lua станет невозможен?

yyk ★★★★★
()
Ответ на: комментарий от Reset

Дреппер не умеет программировать

glibc — кусок говна

либо

Либо?

buddhist ★★★★★
()
Ответ на: комментарий от Vudod

Ну да, не имеет. Но ведь ресурсоёмкий код давно не пишут в однопоточном стиле, одноядерные процессоры в наше время можно встретить только в музеях...

lucentcode ★★★★★
()
Ответ на: комментарий от anonymous

Какой с меня специалист... Но чем проще ЯП, тем легче его оптимизировать... Да и JIT-компиляция к простому ЯП пишется гораздо быстрее. Именно навороты Python и привели к тому, что вменяемый JIT он никогда не получит. Парни с Google уже убедились в том, что написание JIT-копмилятора для ЯП подобного Python слишком сложная затея даже для их корпорации... PyPy может когда-то и станет юзабельным, возможно даже будет на 100% совместим с cpython. Но допилят его не скоро... LUA и JavaScript имеют громадное преимущество перед Python - простой дизайн. Да даже PHP гораздо проще Python, и под него вменяемый JIT уже есть. Спасибо Facebook за то, что они проделали немалую работу в данном направлении...

lucentcode ★★★★★
()
Ответ на: комментарий от Int0l

Подскажи как на LUA посчитать факториал числа 1000.

Лол, а с каких это пор у нас возможность «посчитать факториал числа 1000» является показателем качества языка?

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

Зато можно смотреть на окружающих, как на говно.

anonymous
()
Ответ на: комментарий от anonymous

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

Зачем же так троллить и оскорблять? Да, единственной задачей хаскеля является подсчёт факториала, но это не значит, что надо называть язык бесполезным. Факториалы тоже очень важны в компьютерной индустрии.

anonymous
()
Ответ на: комментарий от Int0l

А как обстоят дела у LUA с большими целыми числами?

в Lua все числа (number) хранятся в double. Но никто не мешает сделать обертку к сишным функциям.

Esh ★★★★
()
Ответ на: комментарий от lucentcode

Но допилят его не скоро... LUA и JavaScript имеют громадное преимущество перед Python - простой дизайн.

Питон значительно проще джаваскрипта. А луа проще обоих, это да.

anonymous
()
Ответ на: комментарий от Esh

в Lua все числа (number) хранятся в double. Но никто не мешает сделать обертку к сишным функциям.

Это, кстати, весьма эпично. Целые числа всё же слишком полезная абстракция, чтобы от неё отказываться.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

в Lua все числа (number) хранятся в double. Но никто не мешает сделать обертку к сишным функциям.

Это, кстати, весьма эпично. Целые числа всё же слишком полезная абстракция, чтобы от неё отказываться.

Всё же зависит от назначения. Я думаю что lua не планировался стать таким популярным при разработке. Скорее всего есть какие-то расширения или патчи для любых нужд.

Esh ★★★★
()

Появление FFI в сабже можно только приветствовать. Хотя против FFI в лиспе и хаскеле он не тянет совершенно, есть шанс что он положит конец ходячему недоразумению в виде «интерпретируемых языков», которое последние лет 20 как сплошь и рядом имеет мозги программистам и смущает нестойких.

Macil ★★★★★
()
Ответ на: комментарий от anonymous

Представь себе, можно! И называется от PyPy, работает на некоторых бенчмарках быстрее С. Твой К.О.

жаль, что в жизни всё обстоит совсем иначе :(

anonymous
()
Ответ на: комментарий от Macil

луашный ffi позволяет писать практически на «голом» си, можно сказать, совместимость с сишными структурами на самом высоком уровне.

anonymous
()
Ответ на: комментарий от anonymous

Куда не кинь обязательно прибегут питонщики и устроят необоснованный холивар, хватит уже анонировать на фото гвино и hello world питона.

anonymous
()
Ответ на: комментарий от anonymous

совместимость с сишными структурами на самом высоком уровне

Это не такой плюс, как может показаться на первый взгляд. Здесь либо мы пользуемся тормозным malloc, либо перетаскиваем данные в область хост-языка.

В GHC есть относительно пристойный макропроцессор - hsc, который решает типичные задачи маршалинга/демаршалинга.

Macil ★★★★★
()

Честно, я так пока и не понял: чем Lua лучше Python? Скорость понятие растяжимое и при необходимости Python в ближайшем будущем нагонит и перегонит Lua.

GreenBag ★★
()
Ответ на: комментарий от yyk

1. Lua Jit по прежнему «совместим» с Lua 5.1? А как-же 5.2[.1]?

http://luajit.org/extensions.html#lua52

2. Lua Jit имеет собственный ffi, не совместимый с «оригинальным»?

Что за «оригинальный» ffi?

Т.е. воспользовавшись этим ffi возврат к оригинальному Lua станет невозможен?

https://github.com/jmckaskill/luaffi

tnodir
()
Ответ на: комментарий от GreenBag

Lua - это маленький встраиваемый язык, Python изначально создавался как язык общего назначения. Разные области применения, разные весовые категории

Gvidon ★★★★
()
Ответ на: комментарий от tnodir

1. Lua Jit по прежнему «совместим» с Lua 5.1? А как-же 5.2[.1]?

http://luajit.org/extensions.html#lua52

Хм, т.е. 5.1 и 5.2 на столько различны, что luajit надо собирать под определённую версию? Но хоть совместимость полная? Все скрипты 5.1 будут без переделки работать под 5.2?

И таки совместимость с 5.2 всё равно не полная. Работа продолжается? Можно надеяться «на успех»?

2. Lua Jit имеет собственный ffi, не совместимый с «оригинальным»?

Что за «оригинальный» ffi?

Т.е. воспользовавшись этим ffi возврат к оригинальному Lua станет невозможен?

https://github.com/jmckaskill/luaffi

т.е. в обычном Lua отсутствует ffi, а указанная либа по фичам таки не догоняет ffi из luajit?

yyk ★★★★★
()
Ответ на: комментарий от GreenBag

Честно, я так пока и не понял: чем Lua лучше Python?

Он маленький и в нем уже сейчас есть эффективный JIT. Во всем остальном он говно.

tailgunner ★★★★★
()
Ответ на: комментарий от yyk

Все скрипты 5.1 будут без переделки работать под 5.2?

Смотря, что используется. Напр., _ENV из 5.2 не будет работать, но можно использовать это: https://github.com/davidm/lua-compat-env

И таки совместимость с 5.2 всё равно не полная. Работа продолжается?

Многие фичи 5.2 добавлены, но API/ABI останется совместимым с 5.1

т.е. в обычном Lua отсутствует ffi, а указанная либа по фичам таки не догоняет ffi из luajit?

Да, в каких-то моментах luaffi отличается.

tnodir
()
Ответ на: комментарий от GreenBag

Честно, я так пока и не понял: чем Lua лучше Python?

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

Boba_Fett
()

Воо а я как раз начал пару месяцев назад осваивать Lua. Понадобилась поддержка скриптов в приложении. Lua идеально подходит для этой задачи. Маленький вес, вшивается прямо в программу.

anonymous
()
Ответ на: комментарий от GreenBag

Отсутствием лишних сущностей: все просто, в отличие от питуна. На lua легко пишется что угодно и потом не понимаешь, нахрена были вообще все эти классы, объекты, кортежи, списки, словари и прочая муть. Когда единственный тип table делает это все разом, причем быстрее. Насчет числового типа - в lua только double, а в luajit компилятор использует integer, если не нужны вещественные числа.

anonymous
()
Ответ на: комментарий от anonymous

На lua легко пишется что угодно

Напомнило «Машина может быть любого цвета, если этот цвет - черный».

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

lua делали для игр, от того все плюшки со скоростью. Потом оказалось, что оно много куда лезет. Я застал времена на гемдеве, когда его только пробовали. Питон сравнивать с lua нет никакого смысла. Питон, комбайн в котором можно и научные расчеты делать на sage или numpy/scipy в общем непонятен спор.

anonymous
()
Ответ на: комментарий от anonymous

Питон сравнивать с lua нет никакого смысла. Питон, комбайн в котором можно и научные расчеты делать на sage или numpy/scipy

э-э ты не путай язык и библиотеки к нему. сами языки сравнить можно а библиотеки дело наживное. меня в луа только бесит цикл for чем-то неуловимо напоминает фортрановский do :))))

anonymous
()
Ответ на: комментарий от GreenBag

Честно, я так пока и не понял: чем Lua лучше Python?

Размером. Его намного легче встраивать, и намного легче кастрировать (например, отрывать небезопасную функциональность, вроде доступа к ФС).

anonymous
()
Ответ на: комментарий от anonymous

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

Зачем плакать, если не обязан пользоваться этими убожествами.

tailgunner ★★★★★
()
Ответ на: комментарий от GreenBag

в ближайшем будущем нагонит

через лет 50? уже для руби джит сделали, а для питона нужно сначала помолится хорошенько. Питон только в «скором будущем» быстрее всех.

anonymous
()
Ответ на: комментарий от tracking_cookie

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.