Skip to content

Features to measure the constraints of libs #6

Open
@iAmMichaelConnor

Description

@kashbrti @jtriley-eth @TomAFrench

Some suggestions:

It doesn't look like I can create a tasklist, otherwise I'd have neatly made one for the 4 things below:

  • Change this template's filing structure to house test binaries which can consume the lib
  • Add CI to catch constraint regressions to this template
  • Figure out how to measure constraints of each lib function separately
  • Add CI to give a constraint diff report in PRs

I've noticed that I and other people tend to follow a pattern like this:

  • Put the actual library in a ./lib/ dir.
  • Put a test binary - which depends on the library - in a ./examples/ dir (the name can be debated).
  • Write a script which compiles the lib and then calls bb gates

Should we update this template to follow that kind of approach?

Some further suggestions:

Ideally, CI for libraries should catch regressions in constraint counts.

A single main function isn't the best for debugging which of the many functions in your lib might have regressed, constraint-wise. It would be better if we had some way of writing many main functions, each of which we could measure independently as part of CI.
I encountered this problem yesterday, and it was painful to figure out which function had regressed.

aztec-packages CI goes even further, and for every PR outputs a report of increases / decreases in constraint counts and opcodes. Pretty cool.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions