Anonymous
я думал для лове свой рантайм нужен
Anonymous
круто , хорошо, что получилось
brestows
Народ есть какая то библиотека для работы с календарями по протоколу caldav или еще каккому ?
B
Хочу вернуться к вопросу : Кроме базового синтаксиса ЯП есть еще и более сложные вещи, постепенно углубляясь в изучение языка нужно углубляться и в смежные вещи, вроде математики (как базовой так и академической), логики, алгоритмов, строения и работы устройств(что то вроде принципов работы процессора, регистры и прочее) тд, тп, как это хорошо совмещать что б это еще и запоминалось.
B
Следующие пять лет обещают быть процветающими и приносящими блага нашей Родине и ее гражданам.
Elmir
Привет.подскажите где можно почитать про luajit, кроме основного сайта?
Snusmumriken
1. Почитать чужого кода. 2. Ещё немного чужого кода, на luajit и на сишке. 3. Почитать про сишку, например K&R.
Snusmumriken
И да, на официальном сайте достаточно полный туториал с референсами. Мне хватило, вместе с материалами типа такого: https://github.com/lzubiaur/clipper-lua/blob/master/src/clipper.lua
Anonymous
К и Р плохая книга, лучше зеда шоу почитать
Snusmumriken
То что тебе не подошла - не значит что не подойдёт другим.
Anonymous
Значит
Snusmumriken
Мне подошла. 1 - 1?
Anonymous
Там все программы рассчитаны на единоразовый запуск
Anonymous
Это материал 60х годов щас так не пишут
Snusmumriken
Ох. Примеры из PIL - Тоже рассчитаны на единоразовый запуск. Это плохая книга?
Anonymous
В к и р прдразумевается нормой буффер оверраны и то что программы текут по памяти
Anonymous
П и л я не читал, не знаю, что за книга
Anonymous
Я прав
Snusmumriken
Нет ты не прав : ) Цель книги - показать логику языка и то что с ним в принципе можно сделать.
Anny
да будет срач х)
Snusmumriken
Два админа (один из которых препод) против Насибуллина, в вопросах образования : )
Elias
Лол, как будто в кукбуках авторы такой уж надежный код пишут
Snusmumriken
Как будто кукбуки предназначены не для нулей в ЯП, чтобы копипастили без разбора и забывали.
Elias
По поводу LuaJIT - думаю, что Elmir скорее просил статей или туторов про сам LuaJIT. Посылать читать чужой код или книги по C - это как-то слишком сурово и несколько не то, что скорее всего ожидается.
Snusmumriken
Ну, простой тутор вот тут: https://habrahabr.ru/post/113804/ Но тут нет биндингов, чисто "делаем структуру, наполняем данными, очищаем". Остальное придётся читать где-то ещё, потому что нет простых мануалов.
Snusmumriken
Кстати, это хорошая идея для следующей статьи на хабру. Подождите недельку-другую.
Snusmumriken
Как устроен: Luajit - это приложение написанное на С, с интерпретатором Lua и встроенным TCC (tiny C compiler). С помощью TCC, он может компилировать сишный код прямо в оперативную память, и тут же исполнять. Благодаря этой же фишке, lua-байткод может превращаться в машинный код и исполняться со скоростью сишки. Как использовать: Есть lua-интерфейс до TCC, под названием ffi.cdef[[...]], это мы как бы объявляем хедер-файл (c-define) с сишными "символами", которые сможем использовать через ffi.C[symbol] или lib[symbol].
Snusmumriken
Тут нет возможности прямо писать всякие функции на сишке, то есть, подразумевается что с сишной стороны на луа будут вывешены конкретные объекты (переменные/массивы), и с луа-стороны с ними что-то сделают.
Snusmumriken
Но есть ffi-биндинг на tcc (который уже внутри luajit-приложения), с которым можно делать всякое. https://github.com/Playermet/luajit-tcc local tcc = require 'tcc' ('libtcc') local state = tcc.new() state:set_output_type('output_memory') state:compile_string [[ int summ(int a, int b) { return a + b; } ]] state:relocate('relocate_auto') local summ = state:get_symbol('summ', 'int(*)(int,int)') print('5 + 7 = ' .. summ(5,7)) state:delete()
Tverd
Хотел бы немного поправить, jit работает независимо и компиляется независимо от tcc. Если там и есть tcc то только для компиляния хедеров, если я не прав, ткните пож в документацию, интересно почитать...
Anonymous
Я чет тоже сомневаюсь что луа код транслируется в С и потом компилируется ТСС
Anonymous
Хотя я на луаджит не кодил
Snusmumriken
Не луа-код а луа-байткод : ) Трассы. Собсно, этим обеспечивается бешеная скорость luajit.
Tverd
трассы? где это пожно почитать?
Tverd
то что трассы компиляются - это понятно, но зачем там tcc, не понятно
Anonymous
Мне кажется там для байткода просто компилятор написан, ну, я бы так сделал
Anonymous
зачем перегонять байтко в ЯВУ и использовать полноценный компилятор С - это же много времени на компиляцию уйдёт, какой бы быстрый ТСС не был
Anonymous
+ он там вроде вставляет какие-то проверки еще
Tverd
щас посмотрел исходники и поиск запустил, нет нигде упоминаний tcc
Snusmumriken
https://youtu.be/9oVZObf2udU?t=1108
Tverd
это смотрел, там про tcc небыло ничего, щас еще посмотрю
Snusmumriken
Про TCC не было ничего потому что не нужно. А чем, как ты думаешь, оно будет компилировать? : )
Anonymous
Своим jit-компилятором
fgntfg
Babe, lets jit together
Snusmumriken
А как работает jit-компилятор? : )
Anonymous
это код написанный для луаджит
Anonymous
он берет байткод и транслирует в машинный код
Snusmumriken
А чем он транслирует в машинный код?
Anonymous
причем тут тсс вообще не могу вдуплить
Anonymous
он транслирует собой
Snusmumriken
ну лан : )
Tverd
ну лан : )
ты походу не писал еще компиляторы, дело не слишком сложное... особенно если это не язык, а байткод
Anonymous
там вообще может быть шитый код в байткоде
Snusmumriken
Я писал интерпретаторы брейнфака )))
Anonymous
я не видел луа никогда
Tverd
только в асм )
Anonymous
вот поэтому К и Р плохая книга и я прав
Anonymous
Нет ну серьёзно у Zed Shaw есть отличный туториал по С
Anonymous
И заметки , почему он лучше
Anonymous
Тверд а можно я тебе в ЛС напишу? У меня пара вопросов по общему развитию..
Snusmumriken
Вот поэтому ты идёшь нафиг со своими советами, потому что на K&R выросло несколько поколений отличных программистов, которые отмечают что они такими отличными стали в том числе благодаря книжке а не вопреки. Ну типа знаешь? Отзывы в гугл-плее "книга фигня мне нипонравилась, не могли всё как у zed shaw, и проги готовые и стиль изложения", всё такое : )
Anonymous
Отличные С программисты? Я не видел людей , которые пишут на С без ошибок просто рабочий код даже
Anonymous
С это очень трудный язы
Anonymous
это как английский, где нет грамматики. В С так же нет единой системы правил для написания рабочего кода
Snusmumriken
Ох. Ты видел людей которые сразу пишут на луа без ошибок? Рабочий код даже.
Anonymous
Например, кто-нибудь в чате может сформулировать правила для:
Anonymous
where to use Type Punning (via Union) and where a cast is enough?
Anonymous
вот не сформулируешь
Светомеч
>enought >punning
Snusmumriken
У сишки есть другие проблемы под названием "принудительная обрезка и терминирование строк принятых от пользователя", а остальное - в общем-то фигня.
Snusmumriken
Видел wireshark? Это сишка, и интерфейсы тоже на сишке.
Anonymous
посмотрим для примера ченджлоги по секьюрити ищьюс в апаче хттпд
Anonymous
там же постоянные рерайты