Перейти к содержимому
  • 0
Alex_kagekao

Можно ли запустить код C++ из Lua в OpenComputers?

Вопрос

Думаю многие знают что Lua можно комбинировать с С++ и получить очень сильную связку которая расширяет возможности и упрощает кодинг. Так вот у меня возник вопрос, А можно ли подключить в OC к Lua C++ и использовать их, или же в этом есть какие-то ограничения? Или нужно писать дополнение к моду для данных возможностей? Просто на мой личный взгляд Lua не очень удобен, и C++ кажутся более родными и удобными. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

43 минуты назад, Alex_kagekao сказал:

упрощает кодинг

 

43 минуты назад, Alex_kagekao сказал:

на мой личный взгляд Lua не очень удобен, и C++ кажутся более родными и удобными

 

8TQOjQT.jpg?1

 

Вообще, если вкратце - то нет, почти что нельзя. Это плюсы комбинятся с луа-машиной посредством C-API/LuaBridge, а не наоборот. Опенкомпы, конечно, позволяют создавать собственные архитектуры в виде аддонов, и тому даже имеется несколько примеров, но вряд ли кто-то озаботится плюсами, мяу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Жалко, придётся учить Lua дабы познать данный мод. А по Lua не гайдов, не уроков толком нет нормальных :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему же нет? На главной странице есть литература по которой можно выучиться. Может маленько устарела, но азы то изучить вполне пойдет. Если любишь обзоры где все подробно разжевано, то есть канал @1Ridav Там правда по ComputerCraft но там разница в работе не сильно большая, Lua разжеван до основания, я собственно по тем видео и учился. А так, рекомендую заглядывать в раздел Гайды, обзоры по модам там много чего интересного можно найти. Ну и советую погуглить файлы справки по lua, справочник зачастую удобнее чем шараханье по сайту в попытках найти нужную тебе функцию. У меня он называется Lua 5.3.chm с переводом, если не найдете, кричите, скину. И кстати lua попроще крестов будет.

Изменено пользователем Asior

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

P.S. Каждый язык удобен по своему)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я костылял си апи в луа для опенкомпов. Нет, плюсы даже я костылять не стал — мне и си хватило.

Ситуация была такова. Я тогда ещё пилил свою гуи-либу-убийцу-всего-живого-своей-охрененностью, и она как-то подозрительно тормозила. А когда программы подозрительно тормозят, юзают профилятор. Который желательно писать на си, дабы минимизировать задержки. Что я и сделал, после чего последовали долгие недели попыток прицепить си-модуль к луа на OC.

 

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

 

Не получилось.

 

Поэтому я взял сырцы луа, которые юзаются в OC. Я их взял, всунул туда свой профилятор и сцомпилировал их вместе так, будто профилятор был встроенной либой луа. Костыли страшные, да. Получившимся подменил то, что лежало стандартно внутри мода, и пересобрал последний.

 

Такими шаманствами я таки осилил получить свой ненаглядный профилятор внутри опенкомпа, и потому смог пропрофилировать свою гуи-либу-убийцу-всего-живого-своей-охрененностью. Это мне, конечно, ни о чём не поведало новом и ничем не помогло, да и гуи-либу эту я таки забросил, но это уже другая история.

 

А можно без костылей? Не, без костылей не получится. Не потому, что плюсы — это уже костыль. Хотя это тоже справедливо (то есть, нет, конечно, не будем холивар разводить). А потому, что авторам мода и в голову не приходило, что кто-то чем-то подобным будет заниматься, и, более того, намеренно всяко-разно отрезали куски луа так, чтобы это оказалось в принципе невозможным. Потому как всем известно, как просто в си выстрелить в ногу вне зависимости от желаний владельца этой ноги, что недопустимо на публичных серверах всяких.

 

Поэтому остаётся учить Луа. Язык это хороший, простой, минималистичный, красивый и полезный, хотя и чутка неудобный порою, как минимум, для заядлого заплюсневевшего программиста из-за динамической типизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я думаю, если серьезно так упороться и вооружиться тулзами типа препроцессора Си написанного на чистой Яве, то можно написать аддон к OpenComputers c новой архитектурой для процессора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Asior У 1Ridav не только computercraft, но и OC

Изменено пользователем kaka888

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Некоторые говорили что можно сделать аддон который добавит поддержку C++, но я что-то вообще не понимаю как это будет работать вместе с Lua. Если в корне поменять в моде язык на C++, текущие операционные системы придётся переписывать на C++. Разработчикам мода было гораздо проще подключить JLua и интерпретировать код с компьютеров OC, при чём данная библиотека позволила разработчикам встроить в язык кастомные функции и переменные. Да и к тому же на Lua гораздо проще кодить, чем на C++, это поможет сделать мод более популярным как мне кажется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, RolanUnix сказал:

Некоторые говорили что можно сделать аддон который добавит поддержку C++, но я что-то вообще не понимаю как это будет работать вместе с Lua

 

Технически ничего сложного. Просто не надо забывать, что как сам мод, так и аддоны к нему, пишутся не на Lua, а на Java (или другом языке семейства JMV).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часов назад, Totoro сказал:

 

Технически ничего сложного. Просто не надо забывать, что как сам мод, так и аддоны к нему, пишутся не на Lua, а на Java (или другом языке семейства JMV).

Уже понял что можно сделать процессор с другой архитектурой. В принципе лучше сделать архитектуру x86, а не C++ сразу. На ней уже можно будет сделать все языки, вот это будет гораздо интереснее.
По вопросу: Заметил моды которые добавляют новые архитектуры, приметил себе OpenPython, а вот C++ не нашёл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что Lua простой да, согласен, это однозначно, но синтаксис лично меня пугает, он максимально не понятен, в С++ он прям как буд-то на нём разговариваю, а вот в Lua он какой-то "тёмный" как буд-то я китайский учить пытаюсь. Я до сих пор не понял как работает функция io.read("*all"); она у меня то работает т.к. надо и принимает от пользователя данные, а иногда ведёт себя не известно как. Возможно как нибудь буду учить Java и попытаюсь создать архитектуру x86 :) правда главное слово здесь возможно, я ещё С++ то даже не доучил и до Junior мне как до китая. Кстати, видел аддон на JS, но как я понял он не особо играбелен т.к. не ОС ничего другого под него нет кроме самой архитектуры и процессора с архитектурой. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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


×
×
  • Создать...