Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

blackhole12 (Erik McClure)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 7 2019, 8:13 PM (224 w, 15 h)

Recent Activity

Aug 24 2020

blackhole12 added inline comments to D70378: [LLD][COFF] Cover usage of LLD as a library.
Aug 24 2020, 8:45 AM · Restricted Project, lld, Restricted Project

Aug 21 2020

blackhole12 accepted D70378: [LLD][COFF] Cover usage of LLD as a library.
Aug 21 2020, 4:31 PM · Restricted Project, lld, Restricted Project

Jun 7 2020

blackhole12 added a comment to D54749: Saturating float to int casts..

These intrinsics are necessary to implement Nontrapping Float To Int Conversions, which have now been merged with the mainline WebAssembly spec. Without these intrinsics, a significant amount of code is required to get them to function (using Rust's implementation as an example, amount of code varies by language). Since the WebAssembly standard now requires these operations, I would like to know the status of this PR and how close it is to being merged.

Jun 7 2020, 9:52 PM · Restricted Project

May 18 2020

blackhole12 updated the diff for D70378: [LLD][COFF] Cover usage of LLD as a library.

Removed unnecessary formatting changes. I do not have commit access @aganea so someone else will have to merge this change.

May 18 2020, 4:17 PM · Restricted Project, lld, Restricted Project

May 15 2020

blackhole12 updated the diff for D70378: [LLD][COFF] Cover usage of LLD as a library.

I changed it to ::instances, but clang-format tried to reformat a bunch of code unrelated to my changes, so I only ran it against Writer.cpp to minimize spurious changes.

May 15 2020, 10:51 AM · Restricted Project, lld, Restricted Project

May 14 2020

blackhole12 updated the diff for D70378: [LLD][COFF] Cover usage of LLD as a library.

This update removes the debuginfo fix, which is no longer needed, and instead moves outputSections into OutputSection and calls it directly from link()

May 14 2020, 9:13 PM · Restricted Project, lld, Restricted Project

May 13 2020

blackhole12 added a comment to D79672: [COFF] Move type merging to TpiSource::mergeDebugT virtual method.

It looks like this time around, the global list that was added has been properly cleaned up in link(), so this should be fine. Of course, the fixes that were mentioned still haven't been merged, so as of right now LLVM 10's LLD linker crashes on windows when used multiple times, but apparently nobody cares about that right now. I can attempt to test this modification on my fork to see if it actually works, if people are willing to commit to actually fixing the memory cleanup errors.

May 13 2020, 2:43 PM · Restricted Project

Dec 3 2019

blackhole12 added a comment to D70378: [LLD][COFF] Cover usage of LLD as a library.

After further testing, this actually doesn't work, but only if you are loading an associated PDB file. I have no idea what's going on, because I don't understand the internals of TypeServerSource, but it's throwing an assertion error at DebugTypes.cpp:191

Dec 3 2019, 9:18 AM · Restricted Project, lld, Restricted Project

Dec 2 2019

blackhole12 updated the diff for D70378: [LLD][COFF] Cover usage of LLD as a library.

Update with full context

Dec 2 2019, 10:43 PM · Restricted Project, lld, Restricted Project
blackhole12 updated the diff for D70378: [LLD][COFF] Cover usage of LLD as a library.

Moved the clear commands to where @ruiu suggested. I was unable to upload a full context diff because the web interface refuses to work properly.

Dec 2 2019, 10:03 PM · Restricted Project, lld, Restricted Project

Nov 22 2019

blackhole12 abandoned D70287: [LLD][COMMON] Fix Incorrect Stream in LLD ErrorHandler.

Addressed by https://reviews.llvm.org/D70292

Nov 22 2019, 2:42 AM · Restricted Project, lld

Nov 19 2019

blackhole12 added a comment to D70421: Initialize global vectors with invalid members to catch uninitialization errors.

I am not particularly convinced that this will fix the problem, as it simply moves the problem around - instead of having to remember to clean up global variables, now programmers have to remember to initialize them with invalid values. This would certainly make it easier to detect errors once you realize there is one, but if someone silently adds a global variable and forgets to initialize it, you're back at square one. The only reliable way to fix the problem is to create an object whose constructor or destructor is automatically called when necessary, which is why I suggested a global container object. Adding anything to the global container object doesn't require the programmer to remember anything, because the destructor will automatically destruct everything inside of it. If this is simply not possible, some sort of baseline test as suggested by MaskRay is likely your only option.

Nov 19 2019, 12:22 AM · Restricted Project

Nov 18 2019

blackhole12 created D70378: [LLD][COFF] Cover usage of LLD as a library.
Nov 18 2019, 1:33 AM · Restricted Project, lld, Restricted Project

Nov 14 2019

blackhole12 accepted D70292: Make it possible to redirect not only errs() but also outs().

I can confirm this change would satisfy my use-case, although another reviewer ought to look over it.

Nov 14 2019, 11:56 PM · Restricted Project
blackhole12 added a comment to D70287: [LLD][COMMON] Fix Incorrect Stream in LLD ErrorHandler.

Yes, I am calling lld::elf::link from my program, which statically links LLD as a library. I can create a change that adds a diag stream to all the linker calls, but this would touch quite a lot of files. It may be more appropriate to close this change and to create a new change for adding a new stream.

Nov 14 2019, 8:27 PM · Restricted Project, lld
blackhole12 added a comment to D70287: [LLD][COMMON] Fix Incorrect Stream in LLD ErrorHandler.

I am calling LLD from within another command line application, and I only want to display output from LLD if there is an actual error, or the user has enabled verbose logging, but several places in LLD use message() during the linking process even if it succeeds, which will output directly to stdout with no way for me to portably redirect it (unless I use freopen, which permanently redirects it to a file, forever, and cannot be restored afterwards). If there needs to be a separate stream for non-error messages, then there should be a way to pass that into the link() function as well, instead of bypassing everything and outputting directly to stdout.

Nov 14 2019, 6:53 PM · Restricted Project, lld
blackhole12 retitled D70287: [LLD][COMMON] Fix Incorrect Stream in LLD ErrorHandler from Fix Incorrect Stream in LLD ErrorHandler to [LLD][COMMON] Fix Incorrect Stream in LLD ErrorHandler.
Nov 14 2019, 6:27 PM · Restricted Project, lld
blackhole12 created D70287: [LLD][COMMON] Fix Incorrect Stream in LLD ErrorHandler.
Nov 14 2019, 6:26 PM · Restricted Project, lld
blackhole12 removed a member for lld: blackhole12.
Nov 14 2019, 5:31 PM
blackhole12 added a member for lld: blackhole12.
Nov 14 2019, 5:30 PM

Jun 10 2019

blackhole12 added a comment to D63042: [LLD][COFF] Fix missing MergeChunk::Instances cleanup in COFF::link().

I do not have access to anything. The only repo I currently have cloned is my fork of the official git repository.

Jun 10 2019, 3:19 AM · Restricted Project, lld
blackhole12 added a comment to D63042: [LLD][COFF] Fix missing MergeChunk::Instances cleanup in COFF::link().

That is not an acceptable solution. This compiler is an embedded, statically linked library that can be used by other programs. It is not a standalone compiler. If the library is statically linked, there is literally no way to start a new process without forcing every single user of my library to support their own program being called with a special option for the sole purpose of invoking a linker. Since one of the intended uses, for example, is a game engine script library, which would compile a webassembly script for a map, this compilation process cannot require the game to support calling it's own executable, or link the script engine as a DLL for the sole purpose of having the script engine then load it's own DLL in a new process. These are not reasonable restrictions to have on what is supposed to be a self-contained compiler.

Jun 10 2019, 1:36 AM · Restricted Project, lld

Jun 7 2019

blackhole12 created D63042: [LLD][COFF] Fix missing MergeChunk::Instances cleanup in COFF::link().
Jun 7 2019, 8:34 PM · Restricted Project, lld