Luсky
Нафиг эти ваши салюты. Один дебич в нашем городке уже раскрутился на сотки четыре зелени. По фасаду многоэтажки стегануло.
Nikolai
С наступившим, мумики!
Nikolai
Nikolai
Nikolai
Nikolai
Snusmumriken
Красота
Hello, World! 🎄
В общем я решил написать свой язык программирования
Hello, World! 🎄
За 2 дня успел сделать переменные, условия (if - else), цикл (while), ввод - вывод. https://github.com/fhw12/programming_language
Hello, World! 🎄
К примеру вот просто код калькулятора на моем языке (это уже работает).
Hello, World! 🎄
Сам язык интерпретируется python интерпретатором, что очень плохо (в плане скорости). Вообще должна была быть компиляция в байткод для моей vm, но я её еще не дописал, либо в ассемблер транслировать и уже пусть он собирает этот код в исполняемый файл.
Ivan
i само увеличивается что ли?
Hello, World! 🎄
i само увеличивается что ли?
Нет, тут строчку не дописал
Hello, World! 🎄
Igor
Спасибо, поправил
В AST'е что-то совсем странное... Почему бы не вынести один вызов self.validation(token.type) перед всеми if'ами?
Igor
странновато короче всё организовано
Hello, World! 🎄
В AST'е что-то совсем странное... Почему бы не вынести один вызов self.validation(token.type) перед всеми if'ами?
self.validation должен проверять правильный ли следующий токен. Согласен что сразу перед if первая проверка бессмысленна, и лучше заменить на self.validation(token.type) перед этой конструкцией.
Hello, World! 🎄
Но есть ньюанс: К примеру мы парсим while (...) { } Внутри блока { } мы рекурсивно вызываем функцию и если я self.validation вызову перед конструкцией if, то мы перейдем к след. токену, но к примеру там может быть } который просто должен был выйти из функции и вернуть блок внутри while.
Hello, World! 🎄
И получается, что он перейдет к след. блоку который следует за } и self.validation в while провалит проверку
Hello, World! 🎄
Сам self.validation в будущем будет принимать как аргумент текст ошибки если ожидаемый токен различается с возможными типами
Hello, World! 🎄
Aqendo
@igor2608 Здравствуйте, для какой версии ваш Майнкрафт сервер? Потестировать хочется, но немного не понял этот момент
Igor
Есть клиент, который по сей день обновляется
Igor
https://github.com/UnknownShadow200/ClassiCube
Igor
С него можно подключиться к серверу
Aqendo
Значит постараюсь потестить
Aqendo
Так интересно
Igor
Ну и с оригинального клиента тоже, в принципе, но его сегодня запустить проблематично
Igor
Из-за того что Java используемая там подустарела конкретно так
Aqendo
Интересно так получилось, что игра на джаве, а клиент и сервер на си
Aqendo
в итоге получилось что вся игра на си
Igor
Я когда нашел этот клиент, как раз и вдохновился им на написание сервера. Правда тогда он назывался ClassicalSharp и был написан на C#, но со временем его автор на Си чистые переписал.
Igor
Ну а первая версия сервера моего на Lua была, сейчас на гитхабе в качесте архива лежит.
Igor
Код там, конечно, оставляет желать лучшего
Igor
Да и сам сервер рабочим не назвать... Только сишная версия более-менее сиабильна, но и той много изменений претерпеть нужно, которые мне делать пока-что лень
Aqendo
Aqendo
получилось
Igor
"plugin disable survival" в консоль
Igor
ну или запустить в CPE режиме клиент
Aqendo
вот я запустил в этом режиме
Igor
CPE - это расширение протокола
Igor
стандартный протокол маина 0.30 довольно беден, это расширение всяких приколов добавляет
Igor
95% расширений мой сервер поддерживает, остались только те, что реализовывать лень, ибо считаю их бесполезными
Aqendo
что
Igor
https://github.com/igor725/cserver/projects/2
Igor
что
античит плохо работает ещё, это да))
Igor
он в survival плагине
Aqendo
я видел этот плагин на аккаунте, но я не думал, что он по умолчанию
Igor
в релизе по умолчанию идут base, lua, survival и web плагины
Igor
а, ещё worldedit, забыл про него
Igor
по lua скриптам, если интересно, есть документация
Igor
вроде даже полная, если я чего не потерял
Igor
https://docs.igvx.ru/Lua/
Aqendo
такая сырая версия)) даже на майнкрафт еле походит
Igor
мне эта версия и нравится тем, что она такая пустая - лёгкий в реализации протокол, нет ничего лишнего, сказка
Aqendo
Нет ничего и нет проблем
Aqendo
Зато и мир за наносекунду генерится
Igor
генератор, кстати, тоже свой. его друг один писал ещё для Lua сервера, а я его потом на C портировал
Egor
ПОдскажите, в гугл таблицах пишу формулу типа: =A1 -как этот результат использовать например как переменную? типа =J{RESULT FROM =A1}
Snusmumriken
Ну типа вот, берём и используем
Igor
Проблемка тут приключилась... Есть у кого-нибудь идея как отдебажить сборщик мусора луажита? Я заметил, что у меня не удаляются объекты, которые создавались внутри корутины, и, возможно, сама корутина тоже в памяти висит. Штука в том, что у меня есть таблица, в которой хранятся корутины и как только какая-то из них завершится - она из неё удаляются через table.remove. Больше референсов на них нигде нет, вроде как. Но объекты всё равно в памяти висят все абсолютно.
Igor
Я чет с таким вообще раньше не сталкивался, нормально всё чистилось. А тут вот подстава.
Snusmumriken
Откуда инфа что оно висит в памяти? Оно откуда-то доступно, или ты ковырнул диспетчер процессов и объём памяти не уменьшается? Если так, то он и не будет уменьшаться
Igor
И уменьшаться вообще не планирует
Snusmumriken
И докуда дорастает?
Igor
До куда угодно, вроде
Igor
Я раз 100 переподключался
Snusmumriken
Приложение падает от нехватки памяти? Попробуй довести до падения.
Igor
И он не падал, а только рос