Skip to content

Consider unrolling loop sytax in CashScript #240

Open
@mr-zwets

Description

@mr-zwets

Now that Bitcoin Cash is going to get increased VM limits, it becomes more plausible developers will want to use 'unrolled loops'. This would just be code repeated x times where x is known at compile time and cannot be a variable. The looping construct will only be able to take a number argument, not a variable.

If we were to enable it, the syntax should make clear to the developer that this loop will be unrolled in size and so any if branching logic will take up a huge amount of space. Either the keyword unroll or unroll for would make this very clear.

unroll(256) {
  // Code to be unrolled and repeated 256 times
}

If people want to have a counter variable they would need to create this explicitly

int i = 0; // Initialize a counter variable

unroll(256) {
  // Increment the counter explicitly
  i = i + 1;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    cashc-compilerRelates to the cashc compiler

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions