Skip to content
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

Tracking issue: Improved ergonomics for defining constraints in AirScript #77

Closed
8 tasks done
Tracked by #79
grjte opened this issue Nov 21, 2022 · 8 comments
Closed
8 tasks done
Tracked by #79
Assignees
Labels

Comments

@grjte
Copy link
Contributor

grjte commented Nov 21, 2022

Goal(s)

  • better ergonomics when defining constraints in AirScript

Details

To improve the ergonomics of the AirScript language, we should add support for:

  • defining intermediate variables with the let keyword with these 3 types: scalars, vectors, matrices
  • declaring named constants with these 3 types: scalars, vectors, matrices
  • grouping columns (e.g.: a[4]) for
    • declarations in the trace_columns section
    • codegen referencing groups of columns (e.g. for generating one of the structs Polygon Zero uses when defining constraints)

Tasks

Preview Give feedback
  1. IR codegen parser v0.2
    tohrnii
  2. IR codegen parser v0.2
    tohrnii
  3. parser v0.2
    tohrnii
  4. IR v0.2
    tohrnii

Tasks

Preview Give feedback
  1. enhancement v0.3
    tohrnii
  2. enhancement v0.2
    Overcastan
  3. v0.2
    tohrnii
  4. enhancement v0.2
    Overcastan

Working group:

@Al-Kindi-0, @grjte, @Overcastan, @tohrnii

Workflow
  • Discussion should happen here or in the related sub-issues.
  • PRs should only be merged by the coordinator, to ensure everyone is able to review.
  • Aim to complete reviews within 24 hours.
  • When a related sub-issue is opened:
    • add it to the list of sub-issues in this tracking issue
  • When opening a related PR:
    • request review from everyone in this working group
  • When a sub-issue is completed:
    • close the related issue with a comment that links to the PR where the work was completed

Coordinator: @tohrnii

The working group coordinator ensures scope & progress tracking are transparent and accurate. They will:

  • Merge approved PRs after all working group members have completed their reviews.
    • add the PR # to the relevant section of the current tracking PR.
    • close any completed sub-issue(s) with a comment that links to the PR where the work was completed
  • Monitor workflow items and complete anything that slips through the cracks.
  • Monitor scope to see if anything is untracked or unclear. Create missing sub-issues or initiate discussion as required.
  • Monitor progress to see if there's anything which isn't moving forward. Initiate discussion as required.
  • Identify PRs with especially significant changes and add @grjte and @bobbinth for review.
@grjte grjte mentioned this issue Nov 22, 2022
14 tasks
@grjte grjte added the v0.2 label Nov 22, 2022
@grjte grjte moved this to In Progress in Milestone for 2023/02 Nov 25, 2022
@grjte grjte changed the title Tracking Issue: Improved ergonomics for defining constraints in AirScript Tracking issue: Improved ergonomics for defining constraints in AirScript Nov 25, 2022
@grjte
Copy link
Contributor Author

grjte commented Dec 1, 2022

Do we want to use column-major or row-major form for matrices? (#63 (comment)) This affects many of the sub-issues here.

@bobbinth what do you think?

@bobbinth
Copy link
Contributor

bobbinth commented Dec 1, 2022

Ultimately, I don't think it matters since we can always transform one form to the other outside of the file. However, since we have to pick something, I think we should go with w/e is convenient for our current use cases.

Currently, the only use case for matrix constants is MDS matrix multiplication in Rescue constraints. There, I believe we need to iterate over rows to perform matrix-vector multiplication. So, I think this means that we should go with row-major form.

@Dominik1999
Copy link

Any progress here? Do you need anything to be unblocked?

@tohrnii
Copy link
Contributor

tohrnii commented Dec 6, 2022

@Dominik1999 Issues 60 and 61 are currently being worked on and will most likely be completed this week and 83 and 85 will probably also be completed this week. Nothing seems to be a blocker at the moment.

@Dominik1999
Copy link

Thanks @tohrnii so all "Must Have" Issues will be completed this week?

@Dominik1999
Copy link

@tohrnii still all good here?

@tohrnii
Copy link
Contributor

tohrnii commented Dec 13, 2022

@Dominik1999 Yes, the PRs for all the must haves are currently open and should be merged this week.

@grjte grjte moved this from In Progress to Done in Milestone for 2023/02 Jan 12, 2023
@grjte
Copy link
Contributor Author

grjte commented Feb 27, 2023

The completion of #87 has moved to #162

@grjte grjte closed this as completed Feb 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Status: Done
Development

No branches or pull requests

6 participants