06:27
<Jack Works>

All I know is, if you try to reuse it in Rust, it will be rejected by the compiler 😂

fn main() {
   let a = (1..5).into_iter();
   //   for i in &a {} NOT WORK
   for i in a {}
   for i in a {} // Error: Use moved value a
}
07:16
<ljharb>
In general, iterators aren’t reusable, with very few exceptions (notably, builtins like array) - i just don’t think people are going to consistently have the intuition that they will be.
11:02
<Rob Palmer>
For those who will be in SF for TC39 in 12 days time, @sffc has organized a Community event on the Wednesday 20th evening at 17:30. https://github.com/tc39/Reflector/issues/437#issuecomment-1177199594 Please let Shane know if you would like to give a presentation or participate in the panel.
11:03
<Rob Palmer>
Also, if you wish to put an item on the Plenary agenda for stage advancement, you have a little over 24 hours to do so. https://github.com/tc39/Reflector/issues/437#issuecomment-1178843643
14:33
<zbraniecki>

All I know is, if you try to reuse it in Rust, it will be rejected by the compiler 😂

fn main() {
   let a = (1..5).into_iter();
   //   for i in &a {} NOT WORK
   for i in a {}
   for i in a {} // Error: Use moved value a
}

but you can do:

fn main() {
  let a = 1..5;
  for i in a {} // implicitly calls into_iter()
  for i in a {} // implicitly calls into_iter()
}
15:26
<littledan>
Looks like the TC39 calendar and the agenda page disagree on when the agenda deadline is
15:27
<littledan>
Should we say that the agenda page is authoritative here? That one is later (tomorrow)
15:50
<Rob Palmer>
The agenda is authoritative.
17:06
<ljharb>
i'll fix the calendar, not sure where the current deadline event came from
17:36
<littledan>
thanks for fixing it ljharb !
19:36
<jschoi>
A doodle of something I might propose tomorrow for Stage 1: generic Object.equiv and Object.diff functions. https://gist.github.com/js-choi/b8b1a1c1388354d1b4384bea8a1fca0a
19:36
<jschoi>
It’s functionally a superset of https://github.com/tc39/proposal-array-equality.
19:38
<bakkot>
jschoi: I think that second link is not the correct link?
19:39
<jschoi>
Fixed, thanks.
19:49
<bakkot>
jschoi: It's a fun idea but for asking for stage 1 people mostly want a problem statement rather than a concrete possible solution, so you might consider presenting this as "i want to compare objects, ideally in a way where the objects can say how to compare themselves. stage 1?" and then after that discussion "also, having gotten stage 1, I want feedback on this direction I was considering, which I am not asking for stage advancement for"
19:50
<jschoi>
Yeah, agreed.
19:50
<jschoi>
Thanks for feedback. : )
19:50
<bakkot>
though you could also consider seeing if the array equality champions would consider something like this in scope, in which case you wouldn't necessarily need to ask for stage 1 again for a separate thing
20:17
<rbuckton (PTO: 7/5 - 7/16)>
A doodle of something I might propose tomorrow for Stage 1: generic Object.equiv and Object.diff functions. https://gist.github.com/js-choi/b8b1a1c1388354d1b4384bea8a1fca0a
I've wanted to handle object equality for awhile (including use as keys in Map and Set). I created the @esfx/equatable package as a possible sketch (along with @esfx/collections-hashmap and @esfx/collections-hashset). https://esfx.js.org/#collections
20:34
<jschoi>
For what it’s worth, I think that diffing (not just testing with a boolean result) is a pretty common use case—every time you want to assert that two objects are equal, it is useful to be able to quickly see why are not the same.
Imagine how many times you’ve added a temporary console.log(thingA, thingYouExpectedToBeTheSameAsThingA) line while debugging, but found that the things were very large and you had to painstakingly find the difference. I’ve even copied and pasted debugging output to text-diffing applications.
Of course, assertion and test-runner libraries nowadays include such functionality for the same reasons.
Anyways, any equality can be defined in terms of an empty diff, so it’s a good opportunity to visit this. I’ll be talking with Hemanth H.M and ljharb about whether to tack this onto array-equality in another Matrix room.
20:46
<ljharb>
for some prior art, see https://npmjs.com/is-equal, and import/require is-equal/why, you'll get a string explaining why they're different (but not a full diff)