Closed Bug 1729563 Opened 3 months ago Closed 1 month ago

Implement the Change Array by copy proposal

Categories

(Core :: JavaScript Engine, task, P3)

task

Tracking

()

RESOLVED FIXED
95 Branch
Tracking Status
firefox95 --- fixed

People

(Reporter: alex.fdm, Assigned: tjc)

References

(Blocks 1 open bug, )

Details

Attachments

(3 files, 2 obsolete files)

The proposal is now on Stage 2.

Priority: -- → P3

See https://tc39.es/proposal-change-array-by-copy/

Added jit-test tests in change-array-by-copy.js

Assignee: nobody → tjc
Status: NEW → ASSIGNED
Attachment #9242153 - Attachment description: WIP: Bug 1729563 - Implement change-array-by-copy methods → Bug 1729563 - Implement change-array-by-copy methods
Attachment #9242153 - Attachment description: Bug 1729563 - Implement change-array-by-copy methods → Bug 1729563 - Implement change-array-by-copy methods r=mgaudet

Add a build flag and shell flag for enabling change-array-by-copy methods.
The flags currently have no effect.

See https://tc39.es/proposal-change-array-by-copy/

Add self-hosted implementations for the new methods for TypedArrays.

Added jit-test tests in typed-array-change-by-copy.js

Depends on D126146

Attachment #9243865 - Attachment description: WIP: Bug 1729563 - Implement change-array-by-copy methods for TypedArrays → Bug 1729563 - Implement change-array-by-copy methods for TypedArrays r=mgaudet

Add a self-hosting intrinsic for Object.is(); this is useful for
self-hosted TypedArray code in a future patch.

See https://tc39.es/proposal-change-array-by-copy/

 Add self-hosted implementations for the new methods for TypedArrays.

 Added jit-test tests in typed-array-change-by-copy.js

Depends on D127907

Attachment #9243865 - Attachment is obsolete: true
Attachment #9244901 - Attachment is obsolete: true
Attachment #9243865 - Attachment is obsolete: false
Attachment #9244903 - Attachment is obsolete: true
Pushed by mgaudet@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8da51dd69cee
Add shell flag for change-array-by-copy methods r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/10a0cbbb62fd
Implement change-array-by-copy methods r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/bc37e17a2ad6
Implement change-array-by-copy methods for TypedArrays r=mgaudet

I updated D127201 and D126146 to address the test failure and re-requested review.

Flags: needinfo?(tjc)
Pushed by mgaudet@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/118e645725d0
Add shell flag for change-array-by-copy methods r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/baf92822b1bf
Implement change-array-by-copy methods r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/dc52f8437ba0
Implement change-array-by-copy methods for TypedArrays r=mgaudet

This is getting backed out. Tim: I apologize. I'm truly baffled as to what has happened here.

Bug 1735775 was opened for an error in argument parsing. I'm not entirely clear what's up with that. More concerning however was failures that occurred in a Beta simulation that had nothing to do with your code. For example, ./mach jit-test basic/bug642206.js fails while trying to issue a JSMSG_OBJECT_REQUIRED_ARG error.

I've looked at it for a bit, and I can't make heads-or-tails of this at all, hence the backout.

What I know:

  1. I can reproduce the failure if I do a local beta simulation update, (./mach try release -v 95.0b1 --tasks release-sim --migration central-to-beta --no-push && hg commit -m "Beta Changes") then build with ac_add_options --enable-update-channel=beta in my MOZCONFIG.
  2. If I don't do the beta simulation update, but simply build with ac_add_options --enable-update-channel=beta, the failure does not reproduce.

I'm going to ni? Arai, as they might be able to shed some light on what's going on here. I've definitely missed something.

Flags: needinfo?(arai.unmht)

Backed out 3 changesets (Bug 1729563) as req by mgaudet (for causing Bug 1735775).
Backout link

Flags: needinfo?(tjc)

will comment on phabricator revisons

Flags: needinfo?(arai.unmht)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 95 Branch → ---
See Also: → 1735862
Attachment #9243847 - Attachment description: Bug 1729563 - Add shell flag for change-array-by-copy methods r=mgaudet → Bug 1729563 - Add shell flag for change-array-by-copy methods r=mgaudet,arai
Attachment #9242153 - Attachment description: Bug 1729563 - Implement change-array-by-copy methods r=mgaudet → Bug 1729563 - Implement change-array-by-copy methods r=mgaudet,arai
Attachment #9243847 - Attachment description: Bug 1729563 - Add shell flag for change-array-by-copy methods r=mgaudet,arai → Bug 1729563 - Add shell flag for change-array-by-copy methods r=mgaudet
Attachment #9243847 - Attachment description: Bug 1729563 - Add shell flag for change-array-by-copy methods r=mgaudet → Bug 1729563 - Add shell flag for change-array-by-copy methods r=mgaudet,arai
Attachment #9243865 - Attachment description: Bug 1729563 - Implement change-array-by-copy methods for TypedArrays r=mgaudet → Bug 1729563 - Implement change-array-by-copy methods for TypedArrays r=mgaudet,arai

Updated patches on phab to address requested changes, re-requested review.

Flags: needinfo?(tjc)
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/f01c6f2e678d
Add shell flag for change-array-by-copy methods r=mgaudet,arai
https://hg.mozilla.org/integration/autoland/rev/4ebf6330fb4e
Implement change-array-by-copy methods r=mgaudet,arai
https://hg.mozilla.org/integration/autoland/rev/4376dd492672
Implement change-array-by-copy methods for TypedArrays r=mgaudet,arai

Urk. I saw that failure in my verifying try push, and wrote it off as an intermittent infrastructure issue, as I was pretty sure we hadn't touched any python in this patch stack.

However, moz.build and moz.configure are python. I'm not entirely sure why this didn't fail on previous landing, perhaps new checking?

As near as I can tell, it's complaining about the fact that

# Enable change-array-by-copy
# ===================================================
@depends(milestone.is_nightly)
def use_change_array_by_copy(is_nightly):
    return False

doesn't actually depend on nightly...

I'm very sorry this patch stack has had such a hard time Tim.

Is there a reason why mach lint doesn't run the lint pass that failed in this case ( /builds/worker/checkouts/gecko/python/mozbuild/mozbuild/test/configure/lint.py )?

Flags: needinfo?(tjc)
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/1994f6df5380
Add shell flag for change-array-by-copy methods r=mgaudet,arai
https://hg.mozilla.org/integration/autoland/rev/a1e3c3757169
Implement change-array-by-copy methods r=mgaudet,arai
https://hg.mozilla.org/integration/autoland/rev/95d6b5368d6f
Implement change-array-by-copy methods for TypedArrays r=mgaudet,arai
Status: REOPENED → RESOLVED
Closed: 2 months ago1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch
Depends on: 1742871
You need to log in before you can comment on or make changes to this bug.