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)

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

Я уже понял, что на метатаблицах можно сделать ООП (вообще, такое впечатление, что протоЛуа был ООП-языком, но потом создатели решили соригинальничать и убрали классы). И что, ООП сделали и пользуются?

Сделали и не один вариант. Конечно пользуются, кому надо.

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

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

Да, попробуй на нем «поработать», ололоша: стандартной библиотеки просто нет, одно название:

[SARCASM] Что? Ты хочешь открыть файлик в нужной директории и что-то в него записать? Окстись! Настоящим программистам это не нужно в стандартной библиотеке. Что? Битовые операции? Тоже в топку, нах они кому-то нужны - у нас гигабайты памяти, а ты про какие-то биты! Что? Сокеты захотел? В стандартной библиотеке? Опух что ли?! Еще, глядишь, и в интеренты будешь ходить с помощью Lua! Не, нам такого не надо. Тебе нравится работать с sqlite3? Забудь, настоящие пргораммеры держат все в голове, как в базе, не надо тут забивать стандартную библиотеку разными глупостями! Что? Ты хочешь нормально работать с JSON? Зачем тебе это? Да и не поддерживает Lua элементы со значением «null» без использования костылей, выкидывая их из конструкции. И правильно, зачем засорять объект, раз значение все равно пустое? Что, ты хочешь узнать размер хэш-таблицы, да еще и с элементами, где есть значение nil? А зачем тебе это? Мне это никогда не требовалось, да и создателям Lua - тоже. Значит и тебе незачем. [/SARCASM]

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

Ну так про то и говорю.
по факту интерпретатор должен по отдельности сравнить каждый из элементов.

>>> a=[1,2,3]
>>> a==[1,2,3]
True
С начало a[0] == 1, a[1] == 2, a[2] == 3. все верно? Но в случае с NaN такого не происходит.

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

Да, попробуй на нем «поработать», ололоша: стандартной библиотеки просто нет, одно название:

А там и ненужна стандартная библиотека. Язык встраиваемый. В какую то программу для внутреннего скриптинга. Python прикладной язык. Область применения разная.

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

Да, попробуй на нем «поработать», ололоша:

Дэбил, объясни народу, на кой во встраиваемом скриптоязыке для игр писать файлы и открывать сокеты?!? Наоборот, всего этого там быть не должно, или хотя бы быть легкоотключаемым. А теперь, ололоша, отключи все это в педоне.

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

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

Да, попробуй на нем «поработать», ололоша: стандартной библиотеки просто нет, одно название

А там и ненужна стандартная библиотека. Язык встраиваемый.

А чем Lua «кручее» Python'а? Языковые конструкции убогие, стандартной минимально-вменяемой библиотеки нет. Тогда чем гордиться-то? Тем, что «встраиваемый»?

Язык [Lua] встраиваемый. ... Python прикладной язык. Область применения разная.

Знаешь, я может кому-то здесь и великую тайну открою, но Python - тоже встраиваемый язык и ничем не сложнее Lua встраивается. Однако, Python еще и прикладной язык для огромной области самых разных задач, в отличие от Lua. А вот Lua-то ничего и не умеет больше.

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

объясни народу, на кой во встраиваемом скриптоязыке для игр писать файлы и открывать сокеты?!?

Ты, дурака кусок, не лезь со своими отмазками и криками. Вякнул, что Lua - вершина совершенства по сравнению с Python, теперь сам себе и доказывай. Скриптовый говоришь? Так вот иди и скриптуй свой ВоВ дальше, пока тебя между булок не затроллили, школота :D

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

но Python - тоже встраиваемый язык и ничем не сложнее Lua встраивается.

а скомпилируй мне его под windows, используя mingw, например :) с Lua всё зашибись в этом плане. А сокеты и любую другую библиотеку можно быстро добавить, написав соответствующие биндинги. Впрочем, для сокетов уже есть готовые

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

но Python - тоже встраиваемый язык и ничем не сложнее Lua встраивается

Ну оторви от педона все небезопасные библиотеки. И весь FFI. Да еще и так, чтобы ему для работы файловая система вообще не нужна была. Что, лопнула срака? А я предупреждал.

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

все это очень странно. Я вот и файлы открываю и в интернеты по http и https хожу, сайты программлю, в твиттерах авторизируюсь по oauth и все такое...

джаббер-сервер у меня тоже на луа написан. Черт его знает, как это он так работает без файлов, без ldap, без сокетов...

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

джаббер-сервер у меня тоже на луа написан. Черт его знает, как это он так работает без файлов, без ldap, без сокетов...

А вот так, приблуд сторонних пришлось писать для решения 90% задач. И каждая такая приблуда поддерживается очередным Васей Пупкиным, который сегодня здесь, а завтра его нет.

И да, с JSON'ом «без костылей», битовыми операциями и подсчетом размера хэш-таблицы у тебя тоже «все нормально, все работает», а? ;)

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

У тебя Питон основной язык разработки ?

Питон и Си примерно поровну.

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

Эээ... если речь о JIT, то причем тут надежность? Скорости добиться трудно, да - приличный JIT для Python до сих пор разрабатывается.

Философия таких языков как Луа - встраивание в программы, которые написаны на языке со статической типизацией, например - C или C++ и использование библиотек этого языка.

Если у Python и есть философия, то это «клей для Си/Си++ компонентов». _Но_ Python давно имеет кучу библиотек на себе самом и используется для написания «просто приложений». Т.е. это автономные программы, никуда не встроенные.

Я думал, что ты используешь Питон в этом качестве.

Я пишу небольшие, но вполне автономные, программы (всякие инструменты). Как раз встраивать Python мне не нужно (хотя я пробовал).

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

Но в случае с NaN такого не происходит.

Дело не в наличии или отсутствии NaN - сравниваются на равенство списки. Списки из одинаковых элементов равны между собой.

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

А там и ненужна стандартная библиотека. Язык встраиваемый.

Какими характеристиками по-твоему должен обладать встраиваемый язык?

В какую то программу для внутреннего скриптинга. Python прикладной язык. Область применения разная.

Python используют и как встраиваемый язык в том числе. Стандартная библиотека тому только способствует, если что.

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

Встройте мне питон в роутер с 4 МБ флэш памяти и 32 мб оперативки, и веб-морду напишите на нем.

Встраиваемый язык обычно должен обладать убогим^W легкий рантаймом и определенной семантической податливастью для специализации на домейне.

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

джаббер-сервер у меня тоже на луа написан. Черт его знает, как это он так работает без файлов, без ldap, без сокетов...

Если ты о prosody, то у него в зависимостях luasocket. Я так понимаю, что в стандартной библиотеке сокетов таки нет (и парсера XML тоже).

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

джаббер-сервер у меня тоже на луа написан.

Нормальные jabber-сервера известно на чем пишутся, и это точно не lua.

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

Встройте мне питон в роутер с 4 МБ флэш памяти и 32 мб оперативки

И где ты ожидаешь проблем? Может, у тебя 32К памяти, а не 32М?

tailgunner ★★★★★
()

Вы все умрёте.

С плохим зрением.

Всем будет наплевать что вы писали и на каком языке.

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

Так в этом то и вся соль, что Питон не учитывает NaN и то что NaN хоть в массиве хоть нет не должен быть равен сам себе.

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

Накой черт мне нужны сокеты из стандартной библиотеки если язык нужен для внутреннего скриптинга, и нафиг не сдался доступ к файлам, и еще 100500 фич из питона не нужны.

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

Так в этом то и вся соль, что Питон не учитывает NaN и то что NaN хоть в массиве хоть нет не должен быть равен сам себе.

[a] == [a] это сравнение списков, содержащих по одной ссылке с одинаковым именем. Подозреваю, если имена и очередность ссылок в списке совпадают - python считает списки эквивалентными и не пытается сравнивать значения поэлементно. Это противоречит IEEE 754 и логике вещей?

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

Накой черт мне нужны сокеты из стандартной библиотеки если язык нужен для внутреннего скриптинга, и нафиг не сдался доступ к файлам, и еще 100500 фич из питона не нужны.

А чем они тебе мешают, напомни?

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

NaN, кстати, еще тот ad-hoc костыль для бинарной логики, которая сама собой костыль для описания мира. Для сохранения адекватности хотя бы в первом приближении необходима троичная (-1 0 1) логика. И неопределенность сможем сделать дискретной или вероятностной. Вещественная неопределенность. Неопределенность и вещества, неопределенные вещества. И хаос.

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

Ну на прямую не противоречит IEEE 754, там нету описания сравнения массивов. Логике противоречит. Питон сравнивает id объектов по поэлементно, и если они одинаковы то считает что все ок, когда же float не в массиве то сравнивается значение.

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

Ну как минимум увеличивают размер программы, дают гибкость которая не всегда нужна(запретить открывать сокеты). Так то да питон встраивается нормально, но вот выглядит это как срельба из пушки по воробьям.

st4l1k ★★
()

Почему тема про lua переросла в питоний срач, кто-нибудь может объяснить? Какое отношение питон вообще имеет к луа и jit?

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

Почему тема про lua переросла в питоний срач

Welcome to LOR!

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

Скажи спасибо, что срач про питон, а не про Михалкова или макось, к примеру.

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

[SARCASM] Что?

Как же у меня получается работать из Lua с файлами,sqlite базой, сокетами, использовать JSON (стопятцот вариантов), юзать потоки, все это завернуть в классы и подключить вот к этому для организации асинхронного VoIP сервера работающего вот на этом?

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

aiker ★★
()

Питон - корявый ламерский язык с корявой ламерской реализацией

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

Я ожидаю проблем что он у меня на флэшку не влезет.

Стандартный - конечно, не влезет.

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

Если ты о prosody, то у него в зависимостях luasocket. Я так понимаю, что в стандартной библиотеке сокетов таки нет (и парсера XML тоже).

И?

Какой смысл всюду тащить и то и другое? Чтобы как питон, весить минимум 20мБ вместо 400К?

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

Если ты о prosody, то у него в зависимостях luasocket. Я так понимаю, что в стандартной библиотеке сокетов таки нет (и парсера XML тоже).

И?

И именно об этом шла речь.

Какой смысл всюду тащить и то и другое? Чтобы как питон, весить минимум 20мБ вместо 400К?

А сделать большую, но модульную, стандартную библиотеку, и в Lua не осилили?

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

использовать JSON (стопятцот вариантов)

И все - с костылями, т.к. Lua не понимает как элемент может быть null. Подсчитывать количество элементов в хэш-таблице тебе тоже не приходится? А, я знаю, ты для этого заводишь отдельную переменную и инкрементируешь ее на каждый пук :D И да, ты как-то застенчиво умолчал про битовые операции: не стесняйся, скажи прямо, что они никому не нужны :)

Как же у меня получается работать из Lua

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

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

И все - с костылями, т.к. Lua не понимает как элемент может быть null

ты можешь взять такой json парсер где сможешь понять что элемент - null.

Подсчитывать количество элементов в хэш-таблице тебе тоже не приходится?

Пока нет. Но если понадобится, я сделаю это с помощью метатаблиц и перехвата событий. Это несложно. Для меня.

И да, ты как-то застенчиво умолчал про битовые операции

Если мне понадобится, то я возьму что-нибудь отсюда так у меня в отличие от тебя нет проблем с компилированием или кросскомпилированием кода и установкой дополнительных библиотек.

Я не мешаю тебе фапать на пиздон или раби или на что ты там фапаешь. Ради бога. Я даже уверен что ты что-то там на них сможешь сделать чего на луа не сможешь. Но это ты. А ты и реальный мир с реальными задачами это две разные вещи. Слава богу.

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

Чувак, ты поаккуратнее. Даже не хочу думать почему ты скатился к концу поста на жопы и гомосятину. Главное чтобы тебя эта тема волновала меньше чем lua и программирование.

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