Skip to content

DSL for Cairo library. #40

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Filipp-Druan opened this issue Oct 22, 2023 · 1 comment
Open

DSL for Cairo library. #40

Filipp-Druan opened this issue Oct 22, 2023 · 1 comment

Comments

@Filipp-Druan
Copy link

Filipp-Druan commented Oct 22, 2023

Did you listened about Nile, special language for drawing? The main idea is that when we program in Cairo, we need to find the optimal path for rendering. You need to indicate HOW to draw. Nile's idea is that we describe WHAT needs to be drawn, and the compiler itself looks for an efficient way to do it. At least that's how I understood the articles I read.
https://tinlizzie.org/VPRIPapers/tr2009016_steps09.pdf
https://github.com/damelang/nile/tree/master
http://tinlizzie.org/dbjr/high_contrast.html

I thought maybe I could write a macro that would provide a convenient interface to Cairo? Declarative. I understand that the task is not an easy one, but you must agree, it is quite interesting.

@bohonghuang
Copy link
Owner

This is an interesting idea, and it is entirely possible within Lisp. In fact, while the Lisp project ecosystem already has various DSLs or sub-languages, such as April and Coalton, designing a language like Nile would require careful consideration of several aspects, such as its syntax, interaction with Cairo and other parts of Lisp. Implementing such a compiler would also involve a substantial amount of work, which I believe may exceed the scope of this project's development. However, if you are able to undertake the design and implementation of such a language, I believe it would be highly welcomed within the Lisp community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants