Snusmumriken
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Use your brain, please.
Я тоже написал мозгом с помощью math.pi но хочу выставить выигрыши в игре в таблице
Snusmumriken
You can make thus with math.pi. local angle = os.clock() / (math.pi * 2) But it can't be stopped.
Hello, World! 🎄
Use your brain, please.
Для этого нужны нейронные связи
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
You can make thus with math.pi. local angle = os.clock() / (math.pi * 2) But it can't be stopped.
ну, это можно использовать, чтобы сделать часы, которые вращаются без остановок
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Для этого нужны нейронные связи
как вы используете свой мозг, если вы никогда его не видели😅
Hello, World! 🎄
как вы используете свой мозг, если вы никогда его не видели😅
Как ты живешь в мире, который никогда не видел?
Hello, World! 🎄
То что ты сейчас видешь, не считается. Это просто часть входящей информации.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Privet dobryy vecher
Alxius
Witaj, Dobry wieczór =)
Денис
Господа, а что в Lua такое с квадратными скобками? Тут курил доку (в коем-то веке, ага), пока писал придумывалку строки из рандомных символов по всяким извратам типапаттернов и так далее, и вижу следующее: Литеральные строки также могут быть определены используя длинные скобки. Мы определяем открывающую длинную скобку уровня n, как открывающую квадратную скобку, следующие за ней n знаков = и ещё одну открывающую квадратную скобку. Так, открывающая длинная скобка уровня 0 запишется так: [[, для уровня 1 - [=[, и так далее. Закрывающая длинная скобка определяется аналогично; например, закрывающая длинная скобка уровня 4 запишется так: ]====]. Длинный литерал начинается с открывающей длинной скобки любого уровня и завершается на первой закрывающей длинной скобке того же уровня. Это позволяет содержать любой текст, кроме закрывающей скобки того же уровня. Литералы в такой скобочной форме могут занимать несколько линий (строк), управляющие последовательности в таких строках не работают, длинные скобки других уровней игнорируются. Я все эти два года просто считал, что двойные квадратные скобки обозначают блок продолжительной строки, а тут про какие-то уровни?.. Как это использовать?
Igor
Господа, а что в Lua такое с квадратными скобками? Тут курил доку (в коем-то веке, ага), пока писал придумывалку строки из рандомных символов по всяким извратам типапаттернов и так далее, и вижу следующее: Литеральные строки также могут быть определены используя длинные скобки. Мы определяем открывающую длинную скобку уровня n, как открывающую квадратную скобку, следующие за ней n знаков = и ещё одну открывающую квадратную скобку. Так, открывающая длинная скобка уровня 0 запишется так: [[, для уровня 1 - [=[, и так далее. Закрывающая длинная скобка определяется аналогично; например, закрывающая длинная скобка уровня 4 запишется так: ]====]. Длинный литерал начинается с открывающей длинной скобки любого уровня и завершается на первой закрывающей длинной скобке того же уровня. Это позволяет содержать любой текст, кроме закрывающей скобки того же уровня. Литералы в такой скобочной форме могут занимать несколько линий (строк), управляющие последовательности в таких строках не работают, длинные скобки других уровней игнорируются. Я все эти два года просто считал, что двойные квадратные скобки обозначают блок продолжительной строки, а тут про какие-то уровни?.. Как это использовать?
Если тебе внутри литерала нужен ещё один литерал. В этом случае уровни как раз и спасают.
Денис
Если тебе внутри литерала нужен ещё один литерал. В этом случае уровни как раз и спасают.
Ну допустим, записал я такой литерал... А дальше куда его? Как его парсить-то?..
Igor
Ну допустим, записал я такой литерал... А дальше куда его? Как его парсить-то?..
А их парсить и не надо, ты назначения этой фиговины походу не понял. Представь себе ситуацию: Пишешь ты такой внутри своего скрипта ещё один скрипт, который на данный момент является чанком-строкой, но вот тебе внутри этого чанка понадобился литерал, но если ты попытаешься его закрыть, то закроется твой основной литерал. Это всё поломает к хренам. Так же в некоторых языках (н-р, xml) используются двойные квадратные скобки, в той же CDATA, это тоже может навредить твоему литералу.
Денис
А их парсить и не надо, ты назначения этой фиговины походу не понял. Представь себе ситуацию: Пишешь ты такой внутри своего скрипта ещё один скрипт, который на данный момент является чанком-строкой, но вот тебе внутри этого чанка понадобился литерал, но если ты попытаешься его закрыть, то закроется твой основной литерал. Это всё поломает к хренам. Так же в некоторых языках (н-р, xml) используются двойные квадратные скобки, в той же CDATA, это тоже может навредить твоему литералу.
Хорошо, с чанками я понял, каюсь, был неправ 😊 Тогда до меня не доходит оформление таких уровней... Можешь накидать прямо одной переменной вид такой конструкции? Давай представим, что у нас есть переменная subscript, которая будет содержать чанк с переменной manifest, которая в свою очередь будет содержать литеральную строку типа [[This is a test ]]
Денис
Распознавайкой достал только ошибку про что-то ожидаемое)))
Денис
По крайней мере, так работает.
Александр
Да нет никакого формата, просто через конструкции [=*[]=*]можно делать вложенные блоки, 1) причём для строк крутость в том, что можно внутри таких строк неэкранировать кавычки и писать lua print([[Это вот "Привет" мир]]) --> Это вот "Привет" мир 2) Но дополнительное достоинство идёт не для строк, а для комментариев, ибо --[[]] - это многострочный комментарий, но вот проблема, возникает, если ты хочешь закомментировать крупный блок с многострочными комментариями, что делать или строки из квадратных скобок ? На помощь приходят символы =, с помощью которых можно блоки из квадратных скобок разделить и тогда можно написать --[==[ ... --[=[ print([[Это вот "Привет" мир]]) ]=] ... ]==]
Александр
Более того такие комментарии можно писать чуть хитрее --[[ --]] т.е. дополнительно добавляя --, которые по сути с одной стороны будут внутри большого комментария, а с другой, для того чтобы по сути раскомментировать/закомментировать блок, нужно добавить лишь один доп - к началу комментария ---[[ как итог обе строки будут считаться однострочными комментариями, но убрав минус вновь комментарием будет цельный многострочный блок
Snusmumriken
Распознавайкой достал только ошибку про что-то ожидаемое)))
Кароч, смотри. Есть квадратные скобки для многострочных строк записанных "как есть". Но тебе вдруг надо в теле самой строки использовать пары квадратных скобок. И для возможности их определения, ты пихаешь между крайними квадратными скобками столько символов "=" сколько нет во внутренней ерунде. Количество символов "=" между скобками может быть любым, хоть миллиард, главное чтобы их было одинаковое количество в открывающей скобке и в закрывающей. line = [=[blabla]]blabla]=] То же самое работает в многострочных комментариях.
Snusmumriken
Ну примерно так, да.
WDMR
Евтихия Бекулов звучит как опытный программист
Roman
ну что за предрассудки по отношению к ботам
WDMR
к нам пожаловал бохх космоса
RapidCodeLab
к нам пожаловал бохх космоса
спасибо за ценные комментарии , они очень важны ...
Семён
Коллеги, подскажите, а можно ли как-то по указателю получить имя функции не имея модуля debug?
Snusmumriken
Коллеги, подскажите, а можно ли как-то по указателю получить имя функции не имея модуля debug?
Нет, только с модулем debug. У функции может быть множество имён, включая локальные.
Семён
Нет, только с модулем debug. У функции может быть множество имён, включая локальные.
Жаль, интерпретатор собран без него... Спасибо за ответ.
Snusmumriken
Это как? Кто-то отрубал принудительно? А require'debug' не работает?
Snusmumriken
Вообще, довольно простой способ узнать имя функции это дёрнуть error и посмотреть на трейс. Но ты узнаешь имя функции только при ошибке.
Александр
Александр
плюс есть альтернативные библиотеки отладки
Семён
так соберите и подключите, не ?
_очень_ мало ресурсов... stm32
Александр
_очень_ мало ресурсов... stm32
а пересобрать интерпретатор не вариант ?
Семён
У меня и так 20 кб остаётся оперативы при максимально кастрированном варианте...
Александр
Это не смотрели https://github.com/elua/elua ?
Александр
И кстати вот https://habr.com/ru/post/459602/
Snusmumriken
У меня и так 20 кб остаётся оперативы при максимально кастрированном варианте...
Вообще, луа это довольно фиговый вариант для микрух. Ты сразу теряешь реалтайм и кучу памяти. А в контроллерах обычно нет сложной логики и нет разницы на чём писать, на луа или сишке, по удобству примерно одинаково.
Snusmumriken
Лично я вижу только один разумный случай использования луа — когда логики настолько много, что весь код в сишном варианте не влезает в память, поэтому мы такие берём, ставим луа, подгружаем модули с внешней памяти по необходимости, и выгружаем их когда те больше не нужны. Буквально как с постраничной подстановкой памяти, только с луашным кодом. Скорость работы при этом очень сильно оставляет желать лучшего, но можно запихнуть больше логики чем сишкой. И не единовременно.
Aydar
У меня и так 20 кб остаётся оперативы при максимально кастрированном варианте...
https://nelua.io/ такая штука есть, компилируемая и при этом Lua-like, сам не юзал но оно транспилируется в C так что в теории можно собрать везде Ещё вариант https://terralang.org/
Александр
не, он а) сишный, б) поддерживает ограниченное количество режимов и архитектур
Aydar
не, он а) сишный, б) поддерживает ограниченное количество режимов и архитектур
1) Вдруг человек решит "хочу максимум производительности и чтобы было хотя бы похоже на Lua" 2) Я не проверял, о чем честно предупредил
R
Пробовал Nelua для похожих задач (не stm, но рядом). Сырой он, я бы не рискнул тащить в реальные проекты. Возможно, уже допилили.
Anonymous
кто то вкурсе love2d тяжело собрать с Lua5.4?
Null
Оно вроде как вообще не под луа, а под луажит...
Null
На котором последняя поддерживаемая версия луев кажись 5.1... может ошибаюсь
Null
Интересно, почему питон настолько популярнее луа, почему под луа настолько меньше библиотек, чем под питон...
Anonymous
Интересно, почему питон настолько популярнее луа, почему под луа настолько меньше библиотек, чем под питон...
потому что у питон ffi из коробки. Даже лучше чем у luajit. Потому что python это про другое. Луа задумывался как язык сценариев. Огромные кодовые базы на нем больно писать. У луа много болячек. В общем эти языки про разное. У питона STD огромная и по этому много библиотек...
Snusmumriken
Интересно, почему питон настолько популярнее луа, почему под луа настолько меньше библиотек, чем под питон...
Потому что питон на хайпе. На хайпе он из-за пиара. И эта самая std принимает в себя все подряд. Видел её объём? ~300 метров либ в чистой установке не считая менеджера пакетов.
Семён
Это не смотрели https://github.com/elua/elua ?
да, конечно, используется именно elua...
Семён
Вообще, луа это довольно фиговый вариант для микрух. Ты сразу теряешь реалтайм и кучу памяти. А в контроллерах обычно нет сложной логики и нет разницы на чём писать, на луа или сишке, по удобству примерно одинаково.
Предоставление пользователю абсолютной свободы в других вариантах еще больнее. Задачи не сложные, но их многообразие не покрыть режимами стандартной прошивки.
Snusmumriken
Предоставление пользователю абсолютной свободы в других вариантах еще больнее. Задачи не сложные, но их многообразие не покрыть режимами стандартной прошивки.
Практика показывает, что предоставлять пользователю полную свободу — максимально вредное действие, потому что пользователь потом не знает что с этой свободой делать и ломает всё что видит, свободен жыж )
Александр
Практика показывает, что предоставлять пользователю полную свободу — максимально вредное действие, потому что пользователь потом не знает что с этой свободой делать и ломает всё что видит, свободен жыж )
Тут как всегда важна мера. Скручивание рук тоже ни к чему хорошему не ведёт - разработчики будут заниматься костылестроением, вплоть до момента когда код станет проще переписать, чем сопровождать. А свобода она всё же тут лучше, ибо она же несёт гибкость и возможность исправить ошибки. Хотя и стоит отметить, что чем больше возможностей, тем больше и возможностей спрятать ошибки.
Денис
Интересно, почему питон настолько популярнее луа, почему под луа настолько меньше библиотек, чем под питон...
Таким же вопросом задаюсь до сих пор. Мое личное мнение, что Lua гораздо лучше питона, хотя бы из-за размеров среды. Да, в Lua тоже можно напихать будь здоров, но все же. Мой Сандбокс для какой-нибудь утилитки весит два-три мегабайта с учетом двух архитектур, а твиттер-клиент на питоне - 379 мегабайт... ТРИСТА СЕМЬДЕСЯТ ДЕВЯТЬ! Я бы понял, если твиттер-клиент весил 50 мегабайт, но 379... И работает все это медленно, кто бы что мне ни говорил. Да питон сейчас хайпует, причем, жесточайше, в виду этого, там либов на каждый чих. У нас же, зачастую, про стэндалон даже не говорят, скриптульки под свои задачи, и если чего нет, пиши сам, либо ищи на гитхабе и пытайся собрать (WXLua я до сих пор не смог). А вот чем Lua хуже для стэндалона?
Денис
Питон - ужасный язык, но у него невпихаться какое комьюнити. Луа крутая, но комьюнити - отсутствует. Согласитесь, наш ТГ-чатик и парочка десятков статей на хабре - это не комьюнити.
Денис
Ах да, еще хочу уточнить, что перечисление комьюнити в прошлом сообщении было не буквальным, а для понимания. Разумеется, комьюнити Lua нашим чатиком, да хабром далеко не ограничивается.
usernameak
Таким же вопросом задаюсь до сих пор. Мое личное мнение, что Lua гораздо лучше питона, хотя бы из-за размеров среды. Да, в Lua тоже можно напихать будь здоров, но все же. Мой Сандбокс для какой-нибудь утилитки весит два-три мегабайта с учетом двух архитектур, а твиттер-клиент на питоне - 379 мегабайт... ТРИСТА СЕМЬДЕСЯТ ДЕВЯТЬ! Я бы понял, если твиттер-клиент весил 50 мегабайт, но 379... И работает все это медленно, кто бы что мне ни говорил. Да питон сейчас хайпует, причем, жесточайше, в виду этого, там либов на каждый чих. У нас же, зачастую, про стэндалон даже не говорят, скриптульки под свои задачи, и если чего нет, пиши сам, либо ищи на гитхабе и пытайся собрать (WXLua я до сих пор не смог). А вот чем Lua хуже для стэндалона?
что забавно, хайп увеличивает количество либ, а количество либ увеличивает хайп. это самоподдерживающаяся система
usernameak
Да шоб оно сгорело! ☹
оно сгорит. рано или поздно.
Денис
что забавно, хайп увеличивает количество либ, а количество либ увеличивает хайп. это самоподдерживающаяся система
Куда ни ткнись, "питон", "питон", "а вот на питоне"... Давайте, говорю, пообщаемся на тему флат ассемблера? А мне: "Питон все равно круче!"
Денис
оно сгорит. рано или поздно.
Ну, когда объявят, что мы уперлись в край быстроты процессоров и количества ядер на плате...
Денис
> круче это разные весовые категории
Да я просто пошутил на эту тему... Хотя...
Денис
> круче это разные весовые категории
Разговор на тему натив версус питон как-то был
Денис
Мне упорно доказывали, что, мол, зачем писать на том же самом пурике, если можно написать на питоне
Денис
Мои увещевания типа виртуалить все, что движется - не есть самое хорошее, что нужно делать - уперлись в искреннее непонимание, мол, а что тут плохого, если можно?
Денис
Так что из двух зол, я выбираю Lua! Ну, подумаешь, свои либы буду писать! Уже довольно быстро получается!
Anton
Мне упорно доказывали, что, мол, зачем писать на том же самом пурике, если можно написать на питоне
Чо-как там в петоне с GIL? Все ещё лочит многопоточность, или за 20 лет какие-то костыли придумали всё-таки?
Денис
Спасибо, кстати, @igor2608 за мою скорость в написании!
Anton
Может, не стОит? Их тошнит обычно от этого