-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Split Cairo out into separate Cairo and Cairo Zero languages #6917
Conversation
Signed-off-by: Marek Kaput <marek.kaput@swmansion.com>
Signed-off-by: Marek Kaput <marek.kaput@swmansion.com>
Signed-off-by: Marek Kaput <marek.kaput@swmansion.com>
Signed-off-by: Marek Kaput <marek.kaput@swmansion.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See inline.
Please can you replace your new samples which are not real-world files with real-world examples.
Do you mean the CASM ones (1, 2)? Yes, they are auto-generated, but I used them because:
wdyt given this context? |
Yes, those files. The fact you can only get the classifier to match our current samples by fudging things kinda speaks for itself… either the current samples aren't good illustrations of the language or the new ones aren't. Or you're trying to match things which look completely different which normally indicates a whole different syntax and thus commonly a whole different language. |
I removed the bigger file, but left the smaller one as it's a good representation and actually hand-writable for some example purposes. I added more real-world Cairo and Cairo 0 samples to provide more data for the classifier. PR description is updated with source links. |
@lildude is there anything I have to add here? :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks.
Note: this PR will not be merged until close to when the next release is made. See here for more details.
Awesome! 😍 Thank you for review! I saw this section in docs; thought you'd merge this now and will wait, just releasing from Are you able to give an order of magnitude, when do you plan to do a next release? I bet my community will love to hear about it, but it's also fine if you can't tell it here. |
I make a release approx every 3-4 months. The last one was on 7 Jun so it won't be for a few months... probably late August. |
This change has been suggested by the StarkWare Product Team, so here it is.
This PR is updating the situation around the Cairo language to match the current state of things.
Disclaimer: I am involved in the development of the Cairo compiler and its dev tooling.
Description
Historical context
Cairo is a programming language that allows writing zero-knowledge-provable programs. Cairo is also the smart-contract language of Starknet.
In Jan 2023, Cairo 1.0 was released (blog post). Cairo 1.0 (and all versions upwards) is a completely new language built from scratch.
A couple of weeks later, we have decided a new naming strategy has been established:
These naming changes got community approval, but everything happened on an invite-only Telegram group, so I am unable to provide a link.
Cairo is not backwards-compatible with Cairo Zero. Cairo Zero development is frozen and the language will not receive any new features or updates.
As a side note: Cairo also brings another language - Sierra, which is an IR between Cairo and CASM. This PR is not concerning about Sierra at all.
What this PR changes
Cairo
language toCairo Zero
.Cairo
that represents the new Cairo.*.casm
. I have added two as*.cairo
to help the classifier, but this PR is not doing anything more, as CASM is not significant enough.Checklist:
starkware-libs/cairo
cairo-book
#ff4a48
Cairo
language itself as it is still evolving, but added heuristics (& tests) that help to disambiguateCairo Zero
which is frozen.