noir-lang / noir

Noir is a domain specific language for zero knowledge proofs
https://noir-lang.org
Apache License 2.0
901 stars 203 forks source link

Epic: More modular frontend #6569

Open michaeljklein opened 1 day ago

michaeljklein commented 1 day ago

Problem

The frontend could be split into more modular parts by reducing repetition, grouping some Type variants by their behavior, and splitting out some code into separate crates

Happy Case

Reduce repetition

Grouping types by behavior

Each of the types in these groups shares methods, e.g. the sized container types all evaluate their lengths to u32's, struct and tuple types both require iteration over their fields, etc.

Separate crates

Workaround

None

Workaround Description

No response

Additional Context

No response

Project Impact

Nice-to-have

Blocker Context

No response

Would you like to submit a PR for this Issue?

None

Support Needs

No response

michaeljklein commented 1 day ago

@TomAFrench