Vasiliy
79885 а мобильные платформы и opengl рендер надо?
Vasiliy
если нет, то можно же просто Lua встроить другими способами
Vasiliy
всякие автобиндеры (я такое не использовал, но тут может подскажут)
Snusmumriken
Ох, теперь мне интересно, как можно интерпретировать С++.
Там же типа шаблоны/кодогенерации куча.
Anonymous
Очень просто
Anonymous
Ллвм компилирует всё в свой промежутошный язык
Anonymous
Кодогенерация не мешает
Anonymous
Там по моему даже либы можно с хедерами подгружать
Snusmumriken
Ну тогда это не интерпретация, а типа компиляция в оперативку. И запускаются такие приложули жутко медленно.
Anonymous
Ну у него точно для пробования кода, а не для продакшна эта штука
Anonymous
Щас название вспомню
Anonymous
Cling is an interactive C++ interpreter, built on the top of LLVM and Clanglibraries. Its advantages over the standard interpreters are that it has command line prompt and uses just-in-time (JIT) compiler for compilation.
Snusmumriken
Ну да, это то же самое что в luajit, только тут компиляцией занимается TCC, поэтому оно вполне может динамически компилиться в продакшне. Хотя для Пущей Скорости народ предпочитает кешировать и это.
Anonymous
В луаджит замешан tiny c compiler?🧐
Snusmumriken
Он там встроен, если что.
А кто будет заниматься компилированием разогретых трасс байткода?
А кто будет творить вот такую дичь?
Snusmumriken
Anonymous
Хороший ffi
Anonymous
Только я не знал, что луаджит имеет промежуточный код/байткод
Snusmumriken
Любая луа в принципе имеет байткод промежуточный.
При желании, ты можешь через luac скомпилить файлы байткода, в результате код будет на пару наносекунд быстрее запускаться, но потеряешь совместимость между интерпретаторами.
Anonymous
Зря ты так про пару наносекунд
ShadoWalkeR
Нечто подобное хотят в ruby 2.6 притащить - компиляцию в C код
Snusmumriken
Карочи, дядя Роб против компиляции луа в байткод : )
Anonymous
В хаскеле есть такое - компиляция в ц код
Anonymous
Ну и во всяких языках для этого предназначенный типа гамбит-схемы
ShadoWalkeR
Авторы питона вообще не стесняются - там гдето от них звучало, что "питон не тормозит. А все узкие места вы можете переписать на С!"
Anonymous
Питон жутко тормозит
Anonymous
Там 1+1 узкое место
Snusmumriken
Если бы это было так просто.
Попробовал разобраться в питонобиндингах, в сравнении с луями - небо и земля по уровню вкуривания, несмотря на наличие доков "как делать библиотеки для питона".
Anonymous
Есть cython
Anonymous
Он несложный
Snusmumriken
И есть pypy, он тоже с jit-компиляцией, но не настолько МОЩНЫЙ как luajit.
Anonymous
Pypy это чисто компилятор
Snusmumriken
Snusmumriken
Трассы, чел, трассы. Так же как luajit.
Anonymous
Ого, давно я им не интересовался
Anonymous
Года с 11го
Snusmumriken
В 2010 уже вылез трассирующий jit-компилятор : )
Но не важно, в общем.
Anonymous
Погоди
Anonymous
В 2010 был трейсманки?
Anonymous
Tracemonkey
Snusmumriken
А это тут к чему? Вроде джаваскриптовое двигло.
И оно научилось трассировать в 2009, по википедии.
Anonymous
Да, но шум по поводу трассирующих компиляторов мозилла принесла
Anonymous
Ага 2009, понял
Snusmumriken
Ехехе, в луях это всё появилось на четыре года раньше )))
Ну ладно, это уже мои хреновины.
Anonymous
Не, все норм
Anonymous
Я же не говорю что луаджит хайп создал
Anonymous
Наоборот в нём это было , как ты говоришь, еще раньше
7
я понял о чем вы, есть вот такая штуку, полноценную cli реализует
7
https://github.com/vgvassilev/cling
Anonymous
Я уже кидал клинг :+
7
пропустил твое сообщение)
7
но достаточно сыроват пока, при подключении буста все валиться
Anonymous
Часть буста содержится в статических либах
Anonymous
Боюсь его невозможно полностью туда подключить
7
Snusmumriken
> но достаточно сыроват пока, при подключении буста все валиться
Буст собирается не один час на не самой калькуляторной машинке. А тут - интерпретация.
7
можно не весь буст собирать)
Anonymous
Есть хедер-онли либы в бусте
Anonymous
Их можно по идее и в интерпретатор подключить
Snusmumriken
А с подключением статик/динамик либ, по хорошему, особых проблем быть не должно, нет?
Anonymous
Статик никак
Anonymous
Статическая лиьа рссчитывает, что ты ее слинкуешь до запуска
Snusmumriken
Ну, она-то рассчитывает, но мб можно заранее составить список всех статик-либ, сказать интерпретатору: "Вот тут будут юзаться они", и типа начинать интерпретировать, не?
Anonymous
Нет, я такого не встречал. Там надо детально знать , мне кажется, например лейаут бинарника
Snusmumriken
Перед запуском, интерпретатор может просканировать содержимое бинарника. Хотя хз, в динамиках описан список выгружаемых "слов" и его можно простым парсером считать.
Я просто не занимался статик-либами.
Vasiliy
79885 может сработать, раз С++ не боишься. Будь готов, что там надо копаться разбираться как вообще проект сбилдить. Потом нужны хелперы или фреймворк для упрощения жизни и оборачивания апи во что-то более высокоуровневое - ресурсный менеджер, переключатель сцен, виджеты и гуи. Такого есть несколько вариантов, но не известно насколько оно рабочее в данный момент
Anonymous
Ну, на линуксе все функции попадают в 'длл экспорт'
Vasiliy
патрик называет свое детище unopionated, это значит что свои луашные либы он не выкладывает и делайте все сами как хотите )
Snusmumriken
Это на виндовсе в dll-export )))
Anonymous
Я имел ввиду линукс т.е. там не надо как то специально помечать для компилятооа
7
79885 может сработать, раз С++ не боишься. Будь готов, что там надо копаться разбираться как вообще проект сбилдить. Потом нужны хелперы или фреймворк для упрощения жизни и оборачивания апи во что-то более высокоуровневое - ресурсный менеджер, переключатель сцен, виджеты и гуи. Такого есть несколько вариантов, но не известно насколько оно рабочее в данный момент
На сколько вы глубоко использовали, вот такой кейс, пробросил все мне нужные функции, взял редактор ZeroBrane, вызываю свои обертки из луа, при вызове так понимаю просиходит создание своего потока со своим стеком, как просиходит отладка непосредственно с++ кода?
Anonymous
Откуда поток берётся?
Vasiliy
потока нет
Anonymous
В случае обычного биндинга стек общий
Snusmumriken
7
да верно
7
как теперь к этой сишке приконнектиться, как просиходит отладка сишки?
Vasiliy
сишку из ZBS не подебажить. я дебажил в икс-коде
Vasiliy
андроид студия тоже работает по отзывам