Closed Bug 541519 Opened 15 years ago Closed 15 years ago

iterators and for each loops

Categories

(Servo Graveyard :: Rust, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: graydon, Assigned: dherman)

Details

Implement iterator fns and loops (those fns that 'put' to the output slot then jump back to the caller loop without destroying frame, and can be resumed, before they ret). This requires use of 'extra args' on the function-call convention, to pass resume PC values back and forth between caller and callee. See Trans.trans_call. Will also produce some exciting interactions with unwinding and stack growth. Somewhat advanced task.
Assignee: nobody → dherman
Summary: iterator fns and loops → iterators and for each loops
Appears to be working well enough now to close this (as of about rev 8ff95d43f9ef). Still plenty of details to implement (nesting, early exits, variable modes, etc.) but those can be filed as followups.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Group: servo
You need to log in before you can comment on or make changes to this bug.