Closed Bug 1492669 Opened 6 years ago Closed 6 years ago

BigInt relational comparison

Categories

(Core :: JavaScript Engine, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox65 --- fixed

People

(Reporter: terpri, Assigned: terpri)

References

Details

(Keywords: dev-doc-complete)

Attachments

(1 file)

Implement BigInt support for relational comparison operators.
Assignee: nobody → robin
Blocks: js-bigint
Comment on attachment 9011163 [details]
bug 1492669 - Implement BigInt support for relational comparison operators.

Jan de Mooij [:jandem] has approved the revision.
Attachment #9011163 - Flags: review+
Keywords: checkin-needed
Pushed by rgurzau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3dace40ce193
Implement BigInt support for relational comparison operators. r=jandem
Keywords: checkin-needed
Backed out for bustage on Result.h:308 

backout: https://hg.mozilla.org/integration/autoland/rev/97b72703378959ef3797788aece1ae03fe7bb7e3

push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=3dace40ce193168f0b3c2102076747f0b99cdaab

failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=201343108&repo=autoland&lineNumber=10229

[task 2018-09-25T04:10:11.196Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/js/src/builtin/Array.h:15:
[task 2018-09-25T04:10:11.197Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/js/src/jspubtd.h:17:
[task 2018-09-25T04:10:11.197Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/js/Result.h:121:
[task 2018-09-25T04:10:11.197Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Result.h:308:25: error: Type 'mozilla::Maybe<bool>' must not be used as parameter
[task 2018-09-25T04:10:11.197Z] 04:10:11     INFO -    MOZ_IMPLICIT Result(V aValue) : mImpl(aValue) { MOZ_ASSERT(isOk()); }
[task 2018-09-25T04:10:11.197Z] 04:10:11     INFO -                          ^
[task 2018-09-25T04:10:11.198Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Result.h:308:25: note: Please consider passing a const reference instead
[task 2018-09-25T04:10:11.198Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/js/src/vm/Interpreter-inl.h:768:1: note: The bad argument was passed to 'Result' here
[task 2018-09-25T04:10:11.198Z] 04:10:11     INFO -  LessThanImpl(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs)
[task 2018-09-25T04:10:11.198Z] 04:10:11     INFO -  ^
[task 2018-09-25T04:10:11.198Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Maybe.h:167:69: note: 'mozilla::Maybe<bool>' is a non-param type because member 'mStorage' has an alignas(_) annotation
[task 2018-09-25T04:10:11.199Z] 04:10:11     INFO -  class MOZ_NON_PARAM MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS Maybe
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -                                                                      ^
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/js/src/Unified_cpp_js_src0.cpp:2:
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/js/src/builtin/Array.cpp:7:
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/js/src/builtin/Array-inl.h:10:
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/js/src/builtin/Array.h:15:
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/js/src/jspubtd.h:17:
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/js/Result.h:121:
[task 2018-09-25T04:10:11.201Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Result.h:71:35: error: Type 'mozilla::Maybe<bool>' must not be used as parameter
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -    explicit ResultImplementation(V aValue) : mStorage(aValue) {}
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -                                    ^
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Result.h:71:35: note: Please consider passing a const reference instead
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Result.h:302:8: note: The bad argument was passed to 'ResultImplementation' here
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -    Impl mImpl;
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -         ^
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Maybe.h:167:69: note: 'mozilla::Maybe<bool>' is a non-param type because member 'mStorage' has an alignas(_) annotation
[task 2018-09-25T04:10:11.203Z] 04:10:11     INFO -  class MOZ_NON_PARAM MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS Maybe
[task 2018-09-25T04:10:11.204Z] 04:10:11     INFO -                                                                      ^
[task 2018-09-25T04:10:11.204Z] 04:10:11     INFO -  2 errors generated.
[task 2018-09-25T04:10:11.204Z] 04:10:11     INFO -  /builds/worker/workspace/build/src/config/rules.mk:1122: recipe for target 'Unified_cpp_js_src0.o' failed
[task 2018-09-25T04:10:11.204Z] 04:10:11     INFO -  make[4]: *** [Unified_cpp_js_src0.o] Error 1
[task 2018-09-25T04:10:11.204Z] 04:10:11     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/js/src'
[task 2018-09-25T04:10:11.204Z] 04:10:11     INFO -  make[4]: *** Waiting for unfinished jobs....
Flags: needinfo?(robin)
Based on IRC discussion, this clang type error may be an unnecessary restriction; I'll see if I can find a way to allow Maybe<bool> here. If that doesn't work out, probably the easiest solution is to just change bool to a wider type, since Result<Maybe<int>> is already used elsewhere in Spidermonkey.
Flags: needinfo?(robin)
Priority: -- → P2
Keywords: checkin-needed
Pushed by aciure@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/81837314ba09
Implement BigInt support for relational comparison operators. r=jandem
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/81837314ba09
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
Blocks: 1456546
Note to MDN writers:

BigInt is not enabled in release yet, so no rel note to add here.

We can still get on with the documentation though.

For doc pages written/updated, see https://github.com/mdn/sprints/issues/1002
(this shipped in 68)

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: