Size: a a a

2019 November 13

PM

Pavel Meledin in Lisp Forever
а что есть ECS ? и насколько легко/ нелегко с многопоточностью и корутинами в CL ?
источник

IZ

Ilia Zviagin in Lisp Forever
Pïg Grëënëst
Борщелисп = общелисп = коммон лисп
Тонка
источник

AK

Andrew Kravchuk in Lisp Forever
Pavel Meledin
а что есть ECS ? и насколько легко/ нелегко с многопоточностью и корутинами в CL ?
Entity-Component-System, способ организации архитектуры в играх.
С многопоточностью в CL вроде всё ок, есть практически стандартная либа bordeaux-threads. Для асинхронности тоже краем глаза что-то видел, но подробно не интересовался
источник

AK

Andrew Kravchuk in Lisp Forever
Pavel Meledin
а можешь поделиться, если где в паблике есть код, чтоб можно было посмотреть бОльшие объемы года и как структурируешь проект, как тесты пишутся и как организовываются и все такое ?

мне интересно на CL/Scheme Data Mining-like ETL/Моделирование начать пилить, хочу заменить питон на CL и вот интересно посмотреть в целом организацию проектов
По поводу организации проектов на CL, есть вот такое в quicklisp: https://github.com/xach/quickproject
Он генерит минимальный скелет проекта
источник

PM

Pavel Meledin in Lisp Forever
Andrew Kravchuk
Entity-Component-System, способ организации архитектуры в играх.
С многопоточностью в CL вроде всё ок, есть практически стандартная либа bordeaux-threads. Для асинхронности тоже краем глаза что-то видел, но подробно не интересовался
понял. благодарю, а есть какой-то рекомендованный путь вкатывания в CL к примеру книга/ книги/ блог/ посты, где основные моменты рутины описаны?
источник

z

z in Lisp Forever
Andrew Kravchuk
Текущий проект на CL пока ещё в стадии зарождения, я там ещё ECS не доделал. Как доделаю - выложу
Есть вот такой проект на Scheme (но он страшно глючный, потому что делался на конкурс под дедлайн 😅): https://github.com/lockie/racket-engine
На ракет нету что-ли обертки над сдл?
источник

AK

Andrew Kravchuk in Lisp Forever
С точки зрения языка - конечно, Practical Common Lisp Зибеля
источник

А

Андрей in Lisp Forever
Common Lisp Recipes by Edi Weitz хорошая
источник

AK

Andrew Kravchuk in Lisp Forever
Pavel Meledin
понял. благодарю, а есть какой-то рекомендованный путь вкатывания в CL к примеру книга/ книги/ блог/ посты, где основные моменты рутины описаны?
С точки зрения рутины про создание проекта - любой гайд про Quicklisp , тип такого https://lispcookbook.github.io/cl-cookbook/getting-started.html
источник

AK

Andrew Kravchuk in Lisp Forever
z
На ракет нету что-ли обертки над сдл?
Будешь смеяться, я делал (там была одна, но она заброшенная)
https://github.com/lockie/racket-sdl2
источник

PM

Pavel Meledin in Lisp Forever
а если racket с CL сравнить, CL все же больше к production ready? ну если не учитывать что в CL - это Lisp. ибо пока субъективно racket показался каким-то игрушечным
источник

AK

Andrew Kravchuk in Lisp Forever
Ну Racket не то что игрушечный, он скорее для обучения и для всяких языковых экспериментов (типа "о, а давайте статическую типизацию в Scheme добавим - а давайте!")
источник

AK

Andrew Kravchuk in Lisp Forever
Я для себя нашёл, что для геймдева Racket, к сожалению, неоч
источник

PM

Pavel Meledin in Lisp Forever
Andrew Kravchuk
Я для себя нашёл, что для геймдева Racket, к сожалению, неоч
а с чем столкнулся ?
источник

z

z in Lisp Forever
Ручками много писать пришлось? Или удалось многое сгенерить из сишного кода?

Я тоже как-то делал обертку над сдл на другой яп.
источник

AK

Andrew Kravchuk in Lisp Forever
Pavel Meledin
а с чем столкнулся ?
С тем самым перформансом. В какой-то момент игровой код начал тормозить. Полез в профилировщик - тишь да гладь. Попробовал дизассемблировать самые горячие функции сторонним пакетом - нифига непонятно, как простое арифметическое выражение компилируется в ассемблерную портянку на три страницы с какими-то левыми call-ами. CL-евский disassemble в этом плане вообще светоч, конечно
источник

PG

Pïg Grëënëst in Lisp Forever
Andrew Kravchuk
С тем самым перформансом. В какой-то момент игровой код начал тормозить. Полез в профилировщик - тишь да гладь. Попробовал дизассемблировать самые горячие функции сторонним пакетом - нифига непонятно, как простое арифметическое выражение компилируется в ассемблерную портянку на три страницы с какими-то левыми call-ами. CL-евский disassemble в этом плане вообще светоч, конечно
Динамическая типизация
источник

AK

Andrew Kravchuk in Lisp Forever
z
Ручками много писать пришлось? Или удалось многое сгенерить из сишного кода?

Я тоже как-то делал обертку над сдл на другой яп.
Руками писал 😅
Хорошо, что в Vim/Evil есть блочное выделение и макросы, я бы без них до сих пор бы эти биндинги писал
А ты для какого яп делал?
источник

z

z in Lisp Forever
источник

AK

Andrew Kravchuk in Lisp Forever
Pïg Grëënëst
Динамическая типизация
Возможно. Но вот в CL для аналогичного кода потребление ЦП на два порядка меньше, лол
источник