Page MenuHomePhabricator

lichray (Zhihao Yuan)
Spy

Projects

User does not belong to any projects.

User Details

User Since
Oct 21 2017, 7:38 PM (152 w, 9 h)

Recent Activity

Jul 31 2020

lichray added a comment to D83530: [llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable.

I've already said my piece. I'm not prepared to accept this as-is until some effort is made to move the logic into a library, like it was before, so that the size and complexity of the tool's command-line parsing code is similar to what it was before.

I see some complicated code this time and made a few suggestions. However, to me, duplicated functionality does not imply complicated code. "Complicated" means that the code itself is difficult to comprehend, with or without some other place that has similar pieces. I'm fine with duplicating logic that preexists elsewhere during refactoring because we often need to look at more than one copies of the work to figure out a proper abstraction.

There are many factors to complexity. Clearly a solution that is easy to understand but takes up 2/3/4 etc times as many lines of code is more complex than an equivalently simple to understand single line of code. Beyond that, using library interfaces which already do all the work is also simpler than writing the code out by hand, as long as the library interface is simple enough, and I believe the cl::opt one is fairly straightforward. Using libraries is also significantly more maintainable, and ensures that library improvements and fixes are picked up in the tool without having to be copied to every place doing the same thing. This change is going in the opposite direction on all counts as things stand.

Jul 31 2020, 1:33 AM · Restricted Project

Jul 30 2020

lichray added a comment to D83530: [llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable.

LGTM.

Jul 30 2020, 10:03 PM · Restricted Project

Jul 29 2020

lichray added a comment to D83530: [llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable.

I think your minimal refactoring bar is perhaps different to mine - I would argue that a refactor that makes the code more complicated is not a good idea.

I'm not arguing against moving to use OptTable in general, but I think every single one of my examples there already has at least one, and most more than one, other place that has the same or closely related requirement. We should improve the library first before trying to refactor this code to use it.

Jul 29 2020, 8:25 AM · Restricted Project

Jul 28 2020

lichray added a comment to D83530: [llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable.

You seem to be throwing out all the good things to simplify a couple of things though. Here is a (possibly non-exhaustive) list of things that were previously handled by the library, and now llvm-symbolizer has to do itself:

  1. Response file usage.
  2. Spell-checking of option names.
  3. Argument type checking and conversion (e.g. to integers, enum, etc).
  4. Integer argument signedness checking.
  5. Unknown argument handling.
  6. Options specified via environment variables.
  7. Help text printing.
Jul 28 2020, 11:20 PM · Restricted Project

Jun 17 2020

lichray added a comment to D81820: [ObjectYAML][ELF] Add support for emitting the .debug_abbrev section..

OR

# CONTENT-NEXT: 0000: 01110125
                      ^~       ULEB28 abbreviation code
                        ^~     ULEB128 DW_TAG_compile_unit
                          ^~   1-byte DW_CHILDREN_yes
                            ^~ ULEB128 DW_AT_producer
Jun 17 2020, 1:29 PM · Restricted Project

Mar 5 2020

lichray requested changes to D70631: Microsoft's floating-point to_chars powered by Ryu and Ryu Printf.

I suggest moving the core parts of the implementation to one or two translation units. The integer portion of <charconv> isn't header-only either. One part of the issue is that, if users build their project with debug, they probably don't want the whole <charconv> facilities to be debugable.

Mar 5 2020, 9:18 AM · Restricted Project

Feb 14 2020

lichray accepted D74626: [libc++] Add availability markup for std::to_chars on Apple platforms.
Feb 14 2020, 2:39 PM · Restricted Project

Dec 8 2019

lichray retitled D64034: [c++] Implement P1957R0 - narrowing pointer-to-bool from [c++] Implement categorizing pointer-to-bool as narrowing conversions to [c++] Implement P1957R0 - narrowing pointer-to-bool.
Dec 8 2019, 7:15 PM · Restricted Project
lichray updated the diff for D64034: [c++] Implement P1957R0 - narrowing pointer-to-bool.

Regenerate the diff in Git, update description, link to paper.

Dec 8 2019, 7:11 PM · Restricted Project
lichray added reviewers for D71171: [git-llvm] Fix Python 3 workaround to print_help: jyknight, mehdi_amini.
Dec 8 2019, 12:37 AM · Restricted Project
lichray created D71171: [git-llvm] Fix Python 3 workaround to print_help.
Dec 8 2019, 12:35 AM · Restricted Project

Nov 14 2019

lichray accepted D69882: [libc++] [P0325] Implement to_array from LFTS with updates..
Nov 14 2019, 2:26 PM · Restricted Project

Nov 13 2019

lichray added a comment to D69882: [libc++] [P0325] Implement to_array from LFTS with updates..

IIRC implementations can make functions "more" noexcept. If so then noexcept is welcome.

Nov 13 2019, 1:05 PM · Restricted Project
lichray added inline comments to D69882: [libc++] [P0325] Implement to_array from LFTS with updates..
Nov 13 2019, 8:37 AM · Restricted Project

Oct 31 2019

lichray added a comment to D69577: [clang-format] [PR35518] C++17 deduction guides are wrongly formatted.

The functionality looks acceptable. Trying to parse the whole thing still looks fragile to me. I expect code owner to take a look at this change.

Oct 31 2019, 10:10 AM · Restricted Project, Restricted Project, Restricted Project

Oct 30 2019

lichray added inline comments to D69577: [clang-format] [PR35518] C++17 deduction guides are wrongly formatted.
Oct 30 2019, 1:44 PM · Restricted Project, Restricted Project, Restricted Project
lichray added inline comments to D69577: [clang-format] [PR35518] C++17 deduction guides are wrongly formatted.
Oct 30 2019, 10:12 AM · Restricted Project, Restricted Project, Restricted Project
lichray added inline comments to D69577: [clang-format] [PR35518] C++17 deduction guides are wrongly formatted.
Oct 30 2019, 9:49 AM · Restricted Project, Restricted Project, Restricted Project

Oct 29 2019

lichray added a comment to D69577: [clang-format] [PR35518] C++17 deduction guides are wrongly formatted.

Should we find a way to set ->'s type to TT_TrailingReturnArrow?

Oct 29 2019, 11:25 PM · Restricted Project, Restricted Project, Restricted Project

Jul 1 2019

lichray updated subscribers of D64034: [c++] Implement P1957R0 - narrowing pointer-to-bool.
Jul 1 2019, 2:05 PM · Restricted Project
lichray created D64034: [c++] Implement P1957R0 - narrowing pointer-to-bool.
Jul 1 2019, 2:04 PM · Restricted Project

Jun 20 2019

lichray committed rG4513f0f0224f: [libc++] Recommit r363692 to implement P0608R3 (authored by lichray).
[libc++] Recommit r363692 to implement P0608R3
Jun 20 2019, 3:08 PM
lichray committed rL363993: [libc++] Recommit r363692 to implement P0608R3.
[libc++] Recommit r363692 to implement P0608R3
Jun 20 2019, 3:07 PM

Jun 19 2019

lichray committed rG3f0ae625ebfa: [libc++] Revert r363692 which implements P0608R3 (authored by lichray).
[libc++] Revert r363692 which implements P0608R3
Jun 19 2019, 12:11 AM
lichray committed rL363764: [libc++] Revert r363692 which implements P0608R3.
[libc++] Revert r363692 which implements P0608R3
Jun 19 2019, 12:11 AM

Jun 18 2019

lichray committed rGc74fc6d5f96f: [libc++] Implement P0608R3 - A sane variant converting constructor (authored by lichray).
[libc++] Implement P0608R3 - A sane variant converting constructor
Jun 18 2019, 8:26 AM
lichray committed rL363692: [libc++] Implement P0608R3 - A sane variant converting constructor.
[libc++] Implement P0608R3 - A sane variant converting constructor
Jun 18 2019, 8:26 AM
lichray closed D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.
Jun 18 2019, 8:26 AM · Restricted Project

Jun 10 2019

lichray added inline comments to D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.
Jun 10 2019, 8:38 PM · Restricted Project
lichray updated the diff for D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Add fail tests

Jun 10 2019, 8:31 PM · Restricted Project
lichray added a comment to D63047: [libc++] Fix leading zeros in std::to_chars.

@ivafanas I forgot to update the description to include a "thank you" in the commit message; sorry about that (

Jun 10 2019, 10:16 AM · Restricted Project
lichray committed rG6bc4a7685ee4: [libc++] Fix leading zeros in std::to_chars (authored by lichray).
[libc++] Fix leading zeros in std::to_chars
Jun 10 2019, 10:09 AM
lichray committed rL362967: [libc++] Fix leading zeros in std::to_chars.
[libc++] Fix leading zeros in std::to_chars
Jun 10 2019, 10:09 AM
lichray closed D63047: [libc++] Fix leading zeros in std::to_chars.
Jun 10 2019, 10:09 AM · Restricted Project
lichray updated the diff for D63047: [libc++] Fix leading zeros in std::to_chars.

Regenerate the patch from libcxx directory

Jun 10 2019, 10:07 AM · Restricted Project

Jun 9 2019

lichray added a comment to D63047: [libc++] Fix leading zeros in std::to_chars.

Ping @mclow.lists
Do you plan to do a final scan before I merging this?

Jun 9 2019, 9:47 PM · Restricted Project
lichray updated the diff for D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Update www

Jun 9 2019, 9:33 PM · Restricted Project
lichray added a comment to D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.
  • the spacing is different from the rest of libc++ (a lot of it was that way before).
Jun 9 2019, 9:30 PM · Restricted Project
lichray updated the diff for D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Trivial rebase

Jun 9 2019, 5:26 AM · Restricted Project
lichray accepted D63047: [libc++] Fix leading zeros in std::to_chars.
Jun 9 2019, 12:50 AM · Restricted Project

Jun 8 2019

lichray added a comment to D63047: [libc++] Fix leading zeros in std::to_chars.

I like the refactoring. I suggest not to drop existing (possibly redundant) tests.

Jun 8 2019, 12:09 PM · Restricted Project

Mar 20 2019

lichray accepted D59598: Make the `<charconv>` header usable with C++11.
Mar 20 2019, 9:08 AM

Feb 13 2019

lichray accepted D58099: Mark 2451 and P0604R0 complete.
Feb 13 2019, 10:36 PM

Feb 10 2019

lichray added a comment to D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Ping @mclow.lists @EricWF ; the patch still applies, is there any other thing I need to address?

Feb 10 2019, 1:28 AM · Restricted Project

Nov 20 2018

lichray committed rL347377: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).
[libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*)
Nov 20 2018, 7:33 PM
lichray committed rCXX347377: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).
[libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*)
Nov 20 2018, 7:33 PM
lichray closed D51268: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).
Nov 20 2018, 7:33 PM

Nov 19 2018

lichray updated the diff for D51268: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).

Update cxx2a status.

Nov 19 2018, 10:42 PM
lichray added a comment to D51268: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).
Nov 19 2018, 10:41 PM

Nov 8 2018

lichray accepted D49863: [istream] Fix error flags and exceptions propagated from input stream operations.
Nov 8 2018, 11:22 AM · Restricted Project, Restricted Project

Nov 3 2018

lichray retitled D44865: [libc++] Implement P0608R3 - A sane variant converting constructor from [libc++] Implement P0608R2 - A sane variant converting constructor to [libc++] Implement P0608R3 - A sane variant converting constructor.
Nov 3 2018, 11:59 PM · Restricted Project
lichray updated the diff for D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Updated implementation for R3

Nov 3 2018, 11:54 PM · Restricted Project
lichray updated the diff for D51268: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).

Rebased

Nov 3 2018, 11:55 AM

Sep 30 2018

lichray added a comment to D52401: Remove redundant null pointer check in operator delete.

__free_hook (defaults to NULL) is a user-supplied hook (https://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html).

Sep 30 2018, 7:17 PM

Sep 28 2018

lichray added a comment to D44609: [clang-format] New option BeforeLambdaBody to manage lambda line break inside function parameter call (in Allman style).

In my case, the main requirement is to be able avoid a lambda in one line.

Sep 28 2018, 10:45 PM · Restricted Project, Restricted Project
lichray reopened D52401: Remove redundant null pointer check in operator delete.

LGTM as well, unless @mclow.lists can tell us some history like interactions with K&R libc :)

Sep 28 2018, 9:49 PM

Sep 22 2018

lichray committed rL342810: Document new symbols for __u64toa and __u32toa.
Document new symbols for __u64toa and __u32toa
Sep 22 2018, 11:07 AM
lichray committed rCXX342810: Document new symbols for __u64toa and __u32toa.
Document new symbols for __u64toa and __u32toa
Sep 22 2018, 11:07 AM
lichray closed D52391: Document new symbols for __u64toa and __u32toa.
Sep 22 2018, 11:06 AM
lichray created D52391: Document new symbols for __u64toa and __u32toa.
Sep 22 2018, 10:18 AM

Sep 21 2018

lichray added a comment to D52240: Partial Fix for PR#38964.
In D52240#1242536, @dim wrote:
Symbol added: __ZNSt3__16__itoa8__u32toaEjPc
    {'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__16__itoa8__u32toaEjPc'}

Symbol added: __ZNSt3__16__itoa8__u64toaEyPc
    {'type': 'FUNC', 'is_defined': True, 'name': '__ZNSt3__16__itoa8__u64toaEyPc'}

So I assume the ABI is already broken in some way...

This appears to be a consequence of rL338479 by @lichray , but since it only *adds* two functions, it might be harmless...

Sep 21 2018, 2:00 PM

Aug 25 2018

lichray created D51268: [libc++] Implement P0487R1 - Fixing operator>>(basic_istream&, CharT*).
Aug 25 2018, 11:04 PM

Aug 9 2018

lichray added a comment to D50543: [libcxx] Mark charconv tests as failing for previous libcxx versions..

LGTM. @ldionne 's job to confirm.

Aug 9 2018, 6:06 PM

Jul 31 2018

lichray committed rL338486: [libc++] Fix build failures after merging <charconv>.
[libc++] Fix build failures after merging <charconv>
Jul 31 2018, 10:21 PM
lichray committed rCXX338486: [libc++] Fix build failures after merging <charconv>.
[libc++] Fix build failures after merging <charconv>
Jul 31 2018, 10:21 PM
lichray closed D50130: [libc++] Fix build failures after merging <charconv>.
Jul 31 2018, 10:21 PM
lichray created D50130: [libc++] Fix build failures after merging <charconv>.
Jul 31 2018, 10:20 PM
lichray committed rCXX338479: [libc++][C++17] Elementary string conversions for integral types.
[libc++][C++17] Elementary string conversions for integral types
Jul 31 2018, 7:40 PM
lichray committed rL338479: [libc++][C++17] Elementary string conversions for integral types.
[libc++][C++17] Elementary string conversions for integral types
Jul 31 2018, 7:40 PM
lichray closed D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 31 2018, 7:40 PM
lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

Dropping a lambda

Jul 31 2018, 3:28 PM

Jul 30 2018

lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 30 2018, 2:01 PM

Jul 20 2018

lichray added a comment to D41458: [libc++][C++17] Elementary string conversions for integral types.

Ping. Any more comments?

Jul 20 2018, 2:42 AM
lichray abandoned D39412: [Driver] Give LIBRARY_PATH precedence over native toolchains.
Jul 20 2018, 1:26 AM

Jul 18 2018

lichray updated the summary of D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 18 2018, 12:53 PM

Jul 16 2018

lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 16 2018, 4:12 PM
lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

Uglify all the names

Jul 16 2018, 4:03 PM
lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 16 2018, 9:16 AM

Jul 10 2018

lichray updated the summary of D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 10 2018, 10:43 AM
lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 10 2018, 10:41 AM
lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

Dropping C++11 support.

Jul 10 2018, 10:38 AM
lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 10 2018, 8:53 AM
lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

Less trailing return types

Jul 10 2018, 8:38 AM
lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

Respond to the 2nd round review

Jul 10 2018, 7:29 AM
lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 10 2018, 7:28 AM

Jul 9 2018

lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 9 2018, 2:27 PM

Jul 3 2018

lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

Install the header file

Jul 3 2018, 3:06 AM
lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 3 2018, 1:00 AM
lichray updated the diff for D41458: [libc++][C++17] Elementary string conversions for integral types.

A macro-free implementation

Jul 3 2018, 12:54 AM

Jul 2 2018

lichray committed rL336165: [libc++] Install the missing header __errc.
[libc++] Install the missing header __errc
Jul 2 2018, 9:06 PM
lichray committed rCXX336165: [libc++] Install the missing header __errc.
[libc++] Install the missing header __errc
Jul 2 2018, 9:06 PM
lichray closed D48864: [libc++] Install the missing header __errc.
Jul 2 2018, 9:06 PM
lichray created D48864: [libc++] Install the missing header __errc.
Jul 2 2018, 9:05 PM
lichray committed rL336164: [libc++] Lift std::errc into a separated header.
[libc++] Lift std::errc into a separated header
Jul 2 2018, 8:30 PM
lichray committed rCXX336164: [libc++] Lift std::errc into a separated header.
[libc++] Lift std::errc into a separated header
Jul 2 2018, 8:30 PM
lichray closed D41347: [libc++] Lift std::errc into a separated header.
Jul 2 2018, 8:30 PM

Jun 4 2018

lichray updated the diff for D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Refine coding style

Jun 4 2018, 12:11 PM · Restricted Project
lichray updated the diff for D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

Preserve value category in narrowing test.

Jun 4 2018, 12:04 PM · Restricted Project
lichray retitled D44865: [libc++] Implement P0608R3 - A sane variant converting constructor from [libc++] Implement P0608R1 - A sane variant converting constructor to [libc++] Implement P0608R2 - A sane variant converting constructor.
Jun 4 2018, 12:00 PM · Restricted Project

May 22 2018

lichray added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
May 22 2018, 5:56 AM