Re: [lldb-dev] [cfe-dev] [Call for Volunteers] Bug triaging

2018-11-09 Thread Kristof Beyls via lldb-dev
Hi Zach,

Thanks for putting the data in a spreadsheet - that’s easier to navigate.

And thanks for re-raising the question whether we have the right components in 
bugzilla.
As I think this could be an area for lots of different opinions, without any 
near-perfect solution, it has the potential to be a discussion that drags on 
for a long time.
I thought half of all bugs not getting triaged was a serious enough problem to 
try and tackle first (with this mail thread) before aiming to improve the 
component breakdown in bugzilla.
I think that setting default-cc lists on the components we have currently is 
largely orthogonal to reducing/merging components, as we can always merge 
default-cc lists when we merge components.


On actually coming up with a refined list of components: I think we’ll need to 
define/agree first on what guiding principles we follow when deciding something 
is worthwhile to be a separate component.
Over the past few weeks I’ve heard a number of different options, ranging over:


  *   Just make a component for every sub-directory in the source code.
  *   Just make a component for every library that gets build in the LLVM build.
  *   Make components so that each component has a significant enough number of 
issues raised against it (I’m trying to paraphrase what you’re proposing below).

In my mind, the guiding principle should be:

  *   Components should reflect an area of expertise, so that each component 
can have a set of recognised people that can triage and/or fix bugs against 
that component.

If we’d follow that principle, I think we should not merge all components with 
less than 10 bugs reported into an “Other” component.
I do agree that some merging could still probably be done. E.g. maybe all the 
“clang/C++11”, “clang/C++14”, “clang/C++17”, “clang/C++2a” could be merged into 
a single component.

So in summary:

  *   I don’t think we need to delay assigning 
volunteers-for-triaging/default-cc lists to components. If we merge components 
later on, we can merge cc lists, or asks the volunteers for the relevant 
components If they want to remain on the default-cc list for the merged 
component.
  *   My opinion is the we should define components based on areas of expertise.

Thanks,

Kristof

On 8 Nov 2018, at 20:39, Zachary Turner 
mailto:ztur...@google.com>> wrote:

Just so I'm clear, are we going to attempt to clean up and/or merge the 
components?  If we are, it makes sense to do that before we start putting 
ourselves as default CC's on the various components since they will just 
change.  If not, it would be nice to get some clarification on that now.

I've put the above list into a spreadsheet so people can sort / filter it as 
they see fit.  The link is here:

https://docs.google.com/spreadsheets/d/1aeU6P_vN2c63mpkilqni26U7XtEBDbzZYPFnovwr3FI/edit#gid=0

I think a good starting point would be to get rid of any component with less 
than 10 bugs reported so far this year and merge them all into an "Other" 
component.

On Thu, Nov 8, 2018 at 8:11 AM Kristof Beyls via cfe-dev 
mailto:cfe-...@lists.llvm.org>> wrote:
Hi,

Yesterday, I’ve landed a description for how reported bugs should be flowing 
through the various stages of a bug’s life (triage, fixing, closing, …) at 
http://llvm.org/docs/BugLifeCycle.html.
Thanks for the many many people who provided ideas and feedback for this!

With there now being a description of what is expected during bug triaging 
(http://llvm.org/docs/BugLifeCycle.html#triaging-bugs), we're looking for more 
volunteers to actually do the bug triaging.
About half of all raised bugs currently don’t seem to get triaged.

The idea is to have one or more volunteers for each of the well over 100 
different product/component combinations we have in bugzilla.
If you volunteer to help with triaging bugs against a specific component, we’ll 
add you to the default cc list for that component, so that when a new bug is 
raised against that component, you’ll get notified automatically through email. 
For components with few reported bugs, a single triager may suffice. For the 
high-traffic components, we’ll probably need multiple volunteers.
I’ve provided the list of product/components below that had bugs reported 
against in 2018, together with how many bugs were reported against them this 
year so far, as an indication for which components may need more volunteers.

I do want to highlight the “new-bugs/new bugs”, “clang/-New Bugs” components as 
those tend to be components people file bugs against if they don’t have a clue 
which part of clang/llvm is causing the issue they’re seeing. I believe that 
you don’t need to be an expert to be able to triage most of those bugs. If you 
want to learn more about llvm, volunteering to triage those bugs may be an 
interesting way to learn a lot more yourself.

How can you get added to the default cc list/volunteer?
* Preferred way: raise a bug against “Bugzilla Admin”/“Products” to get 
yourself added to the 

Re: [lldb-dev] [cfe-dev] [llvm-dev] Updates on SVN to GitHub migration

2018-11-09 Thread Anton Korobeynikov via lldb-dev
Correct. One important part of the migration is the ability to keep
the various CIs and other integrations intact via switching to
svn-from-git bridge:
https://help.github.com/articles/support-for-subversion-clients/

Otherwise the things might be even more complicated for downstream users.
On Fri, Nov 9, 2018 at 10:56 AM Dean Michael Berris
 wrote:
>
> I think Anton is referring to the SVN bridge -- where Git repositories
> can be accessed through the Subversion API/protocol.
> On Fri, Nov 9, 2018 at 6:27 PM Jean-Daniel via cfe-dev
>  wrote:
> >
> > Isn’t the checkout a local operation that should not involved GitHub ? Did 
> > you mean the clone operation ?
> >
> > And about sparse-checkout, I though they require a full clone of the 
> > repository anyway. Is there a way to do a partial clone only ?
> >
> > Note: If you don’t need the whole history local, you may perform a swallow 
> > clone (using —depth 1).
> >
> > Le 9 nov. 2018 à 01:02, Anton Korobeynikov via llvm-dev 
> >  a écrit :
> >
> > No idea, the checkout just timed out. I tried to play with sparse
> > checkouts, etc. and my current hypothesis that the large number of
> > revisions makes it unhappy.
> > On Fri, Nov 9, 2018 at 2:39 AM James Y Knight  wrote:
> >
> >
> > It'd be nice to know what about our repository is breaking it. Do they have 
> > any idea what that is?
> >
> > For example -- I think that we probably will want to archive+discard many 
> > of the random branches and tags currently in the repository. If the large 
> > number of branches and tags is breaking it, then maybe it just starts 
> > working after we do so.
> >
> > On Thu, Nov 8, 2018 at 3:53 PM Anton Korobeynikov  
> > wrote:
> >
> >
> > Some status update wrt GitHub SVN bridge.
> >
> > It does not work for any non-trivial (= LLVM) repo. I filled the issue
> > there, however, there is no ETA when it will be fixed. Even worse,
> > there are no promises that the issue will be addressed at all. Though
> > they are aware that this is the issue for us.
> > On Thu, Nov 8, 2018 at 12:53 PM Nico Weber via llvm-dev
> >  wrote:
> >
> >
> > What's the status here?
> >
> > Can someone keep https://llvm.org/docs/Proposals/GitHubMove.html updated 
> > with the current status of things?
> >
> > And once things are usable, probably update 
> > https://llvm.org/docs/GettingStarted.html#for-developers-to-work-with-a-git-monorepo
> >  as well.
> >
> > On Wed, Oct 24, 2018 at 4:57 AM Jacob Carlborg via lldb-dev 
> >  wrote:
> >
> >
> > On 2018-10-24 08:25, Whisperity via cfe-dev wrote:
> >
> > They are not shown in the project graph, but if you open the "branch"
> > drop down it has a tab named 'Tags'.
> >
> >
> > It shows some tags there, but not all of them. But clicking "releases"
> > then "Tags" will show this page [1], which seems to include all of them.
> >
> > [1] https://github.com/llvm-git-prototype/llvm/tags
> >
> > --
> > /Jacob Carlborg
> >
> > ___
> > lldb-dev mailing list
> > lldb-dev@lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> >
> >
> > ___
> > LLVM Developers mailing list
> > llvm-...@lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> >
> >
> >
> > --
> > With best regards, Anton Korobeynikov
> > Department of Statistical Modelling, Saint Petersburg State University
> >
> >
> >
> >
> > --
> > With best regards, Anton Korobeynikov
> > Department of Statistical Modelling, Saint Petersburg State University
> > ___
> > LLVM Developers mailing list
> > llvm-...@lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> >
> > ___
> > cfe-dev mailing list
> > cfe-...@lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
>
> --
> Dean



-- 
With best regards, Anton Korobeynikov
Department of Statistical Modelling, Saint Petersburg State University
___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


Re: [lldb-dev] [cfe-dev] [Call for Volunteers] Bug triaging

2018-11-09 Thread Zachary Turner via lldb-dev
To elaborate, I didn't mean to group all components with less than 10 bugs
into one massive component.  Rather, to do it separately for each
subcomponent.  Grouping by expertise is fine, but I would argue that a
component with 2 or 3 bugs filed per year is not a very useful component.
There has to be some kind of bar for having a component otherwise you end
up in the situation we have now.

If you apply this algorithm to the existing set of components, you end up
with something like this:

Clang:
* New Bugs
* C++
* Frontend
* Formatter
* LLVM Codegen
* Static Analyzer
* Driver
* Modules
* libclang
* Other

clang-tools
* clang-tidy
* Other

compiler-rt
* All Bugs

Documentation
* All Bugs

libc++
* All Bugs

libraries
* Backend:X86
* Scalar Optimizations
* Common Code Generator Code
* Backend:AMDGPU
* Loop Optimizer
* Backend:WebAssembly
* Backend:ARM
* DebugInfo
* Backend:AArch64
* MC
* GlobalISel
* Core LLVM classes
* Global Analyses
* Interprocedural Optimizations
* Support Libraries
* Backend:PowerPC
* Linker
* Transformation Utilities
* Other

lld
* ELF
* COFF
* Other

lldb
* All Bugs

LNT
* All Bugs

new-bugs
* All Bugs

OpenMP
* Clang Compiler Support
* Runtime Support

Packaging
* All Bugs

Phabricator
* All Bugs

Polly
* All Bugs

Runtime Libraries
* libprofile

Test Suite
* All Bugs

tools
* All Bugs

Website
* All Bugs

XRay
* All Bugs

I don't think it's helpful to have what essentially amounts to lots of dead
components, because it causes confusion for bug reporters as well as
triagers.  I also don't think the above split is radically different than
what is already there, and for the most part, it still *is* organized by
expertise.  It also means you need to find less volunteers to add
themselves to the cc list for various components.  Instead of needing to
find a separate volunteer for Hexagon, MSP430, PTX, RISC-V, Sparc, Bitcode
Writer, and MCJIT, each of which has only 1 bug each (so in each case
you're looking for a needle in a haystack to find the right person and get
them to volunteer), you only need to find 1 for all of them, and there's a
good chance that person will be at least somewhat familiar with backends in
general and so know who the right person to talk to is in each case.

Anyway, just my thoughts.

On Fri, Nov 9, 2018 at 12:19 AM Kristof Beyls  wrote:

> Hi Zach,
>
> Thanks for putting the data in a spreadsheet - that’s easier to navigate.
>
> And thanks for re-raising the question whether we have the right
> components in bugzilla.
> As I think this could be an area for lots of different opinions, without
> any near-perfect solution, it has the potential to be a discussion that
> drags on for a long time.
> I thought half of all bugs not getting triaged was a serious enough
> problem to try and tackle first (with this mail thread) before aiming to
> improve the component breakdown in bugzilla.
> I think that setting default-cc lists on the components we have currently
> is largely orthogonal to reducing/merging components, as we can always
> merge default-cc lists when we merge components.
>
>
> On actually coming up with a refined list of components: I think we’ll
> need to define/agree first on what guiding principles we follow when
> deciding something is worthwhile to be a separate component.
> Over the past few weeks I’ve heard a number of different options, ranging
> over:
>
>
>- Just make a component for every sub-directory in the source code.
>- Just make a component for every library that gets build in the LLVM
>build.
>- Make components so that each component has a significant enough
>number of issues raised against it (I’m trying to paraphrase what you’re
>proposing below).
>
>
> In my mind, the guiding principle should be:
>
>- Components should reflect an area of expertise, so that each
>component can have a set of recognised people that can triage and/or fix
>bugs against that component.
>
>
> If we’d follow that principle, I think we should not merge all components
> with less than 10 bugs reported into an “Other” component.
> I do agree that some merging could still probably be done. E.g. maybe all
> the “clang/C++11”, “clang/C++14”, “clang/C++17”, “clang/C++2a” could be
> merged into a single component.
>
> So in summary:
>
>- I don’t think we need to delay assigning
>volunteers-for-triaging/default-cc lists to components. If we merge
>components later on, we can merge cc lists, or asks the volunteers for the
>relevant components If they want to remain on the default-cc list for the
>merged component.
>- My opinion is the we should define components based on areas of
>expertise.
>
>
> Thanks,
>
> Kristof
>
> On 8 Nov 2018, at 20:39, Zachary Turner  wrote:
>
> Just so I'm clear, are we going to attempt to clean up and/or merge the
> components?  If we are, it makes sense to do that before we start putting
> ourselves as default CC's on the various components since they will just
> change.  If not,

[lldb-dev] [CMake] LLDB framework / shared library

2018-11-09 Thread Stefan Gränitz via lldb-dev
Hello Alex, hello Pavel

I spent some time creating/streamlining our CMake infrastructure downstream of 
LLDB and learned a few things about bundles, versions, code-signing etc. 
(mostly on the Darwin side of things). I am currently sorting out what can be 
upstreamed and prepare reviews.

Some work is still todo for the LLDB shared library/framework (for simplicity I 
will call it LLDB.framework). It would be great to know, if you have concerns 
or comments on the following points:

(1) The liblldb target builds the actual LLDB.framework, while the 
lldb-framework target adds headers, symlinks, etc. What is the reason for this 
separation? Can I merge that into one target with post-build steps?

(2) In previous reviews there was an effort to centralize the code for building 
LLDB.framework, which makes sense to me. With the current LLDBFramework.cmake 
approach, however, it’s spread over at least 3 different files 
(lldb/CMakeLists.txt for init and lldb/source/API/CMakeLists.txt for actual 
definition). In a similar case downstream, I did all that in a single 
CMakeLists.txt in the source folder. While I see that LLDBFramework affects the 
whole project, I don’t see why we need a separate LLDBFramework.cmake (BTW 
upstream it’s included only once). Do you think I can move things to 
lldb/source/API/CMakeLists.txt where possible?

(3) Currently the build directory for LLDB.framework is determined from 
LLDB_FRAMEWORK_INSTALL_DIR, which I think is a little confusing. Can I clean 
this up? (e.g. having a LLDB_FRAMEWORK_BUILD_DIR)

(4) With Xcode, executables are emitted in bin and copied to LLDB.framework 
where necessary. CMake emits them into LLDB.framework directly and creates 
symlinks to bin. With LLVM_EXTERNALIZE_DEBUGINFO on Darwin, this has the 
effect, that by default their dSYMs will end up in LLDB.framework. Thus, I 
would prefer the Xcode behaviour here.

(5) Couldn’t (4) also simplify the INCLUDE_IN_SUITE logic? I would consider it 
to be LLDB.framework’s responsibility to set dependencies and adjust RPATHs for 
all required artefacts. The tools wouldn’t need to care about that (though, 
they could still check LLDB_BUILD_FRAMEWORK). The RPATH-login for case 
ARG_INCLUDE_IN_SUITE && LLDB_BUILD_FRAMEWORK is quite complicated though and I 
wonder if there are strong reasons not to do that. What do you think?

(6) Just out of interest: why is LLDB_BUILD_FRAMEWORK is not supported on CMake 
< 3.7?

Best
Stefan



___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


Re: [lldb-dev] [cfe-dev] [Call for Volunteers] Bug triaging

2018-11-09 Thread Kristof Beyls via lldb-dev
Hi Zach,

Thanks for elaborating.
I like your proposal. I agree it still groups per area of expertise. And it 
makes the set of components we have easier to manage.
Before making changes though I hope to hear opinions from others on this.
What do others think?

Thanks,

Kristof

On 9 Nov 2018, at 18:05, Zachary Turner 
mailto:ztur...@google.com>> wrote:

To elaborate, I didn't mean to group all components with less than 10 bugs into 
one massive component.  Rather, to do it separately for each subcomponent.  
Grouping by expertise is fine, but I would argue that a component with 2 or 3 
bugs filed per year is not a very useful component.  There has to be some kind 
of bar for having a component otherwise you end up in the situation we have now.

If you apply this algorithm to the existing set of components, you end up with 
something like this:

Clang:
* New Bugs
* C++
* Frontend
* Formatter
* LLVM Codegen
* Static Analyzer
* Driver
* Modules
* libclang
* Other

clang-tools
* clang-tidy
* Other

compiler-rt
* All Bugs

Documentation
* All Bugs

libc++
* All Bugs

libraries
* Backend:X86
* Scalar Optimizations
* Common Code Generator Code
* Backend:AMDGPU
* Loop Optimizer
* Backend:WebAssembly
* Backend:ARM
* DebugInfo
* Backend:AArch64
* MC
* GlobalISel
* Core LLVM classes
* Global Analyses
* Interprocedural Optimizations
* Support Libraries
* Backend:PowerPC
* Linker
* Transformation Utilities
* Other

lld
* ELF
* COFF
* Other

lldb
* All Bugs

LNT
* All Bugs

new-bugs
* All Bugs

OpenMP
* Clang Compiler Support
* Runtime Support

Packaging
* All Bugs

Phabricator
* All Bugs

Polly
* All Bugs

Runtime Libraries
* libprofile

Test Suite
* All Bugs

tools
* All Bugs

Website
* All Bugs

XRay
* All Bugs

I don't think it's helpful to have what essentially amounts to lots of dead 
components, because it causes confusion for bug reporters as well as triagers.  
I also don't think the above split is radically different than what is already 
there, and for the most part, it still *is* organized by expertise.  It also 
means you need to find less volunteers to add themselves to the cc list for 
various components.  Instead of needing to find a separate volunteer for 
Hexagon, MSP430, PTX, RISC-V, Sparc, Bitcode Writer, and MCJIT, each of which 
has only 1 bug each (so in each case you're looking for a needle in a haystack 
to find the right person and get them to volunteer), you only need to find 1 
for all of them, and there's a good chance that person will be at least 
somewhat familiar with backends in general and so know who the right person to 
talk to is in each case.

Anyway, just my thoughts.

On Fri, Nov 9, 2018 at 12:19 AM Kristof Beyls 
mailto:kristof.be...@arm.com>> wrote:
Hi Zach,

Thanks for putting the data in a spreadsheet - that’s easier to navigate.

And thanks for re-raising the question whether we have the right components in 
bugzilla.
As I think this could be an area for lots of different opinions, without any 
near-perfect solution, it has the potential to be a discussion that drags on 
for a long time.
I thought half of all bugs not getting triaged was a serious enough problem to 
try and tackle first (with this mail thread) before aiming to improve the 
component breakdown in bugzilla.
I think that setting default-cc lists on the components we have currently is 
largely orthogonal to reducing/merging components, as we can always merge 
default-cc lists when we merge components.


On actually coming up with a refined list of components: I think we’ll need to 
define/agree first on what guiding principles we follow when deciding something 
is worthwhile to be a separate component.
Over the past few weeks I’ve heard a number of different options, ranging over:


  *   Just make a component for every sub-directory in the source code.
  *   Just make a component for every library that gets build in the LLVM build.
  *   Make components so that each component has a significant enough number of 
issues raised against it (I’m trying to paraphrase what you’re proposing below).

In my mind, the guiding principle should be:

  *   Components should reflect an area of expertise, so that each component 
can have a set of recognised people that can triage and/or fix bugs against 
that component.

If we’d follow that principle, I think we should not merge all components with 
less than 10 bugs reported into an “Other” component.
I do agree that some merging could still probably be done. E.g. maybe all the 
“clang/C++11”, “clang/C++14”, “clang/C++17”, “clang/C++2a” could be merged into 
a single component.

So in summary:

  *   I don’t think we need to delay assigning 
volunteers-for-triaging/default-cc lists to components. If we merge components 
later on, we can merge cc lists, or asks the volunteers for the relevant 
components If they want to remain on the default-cc list for the merged 
component.
  *   My opinion is the we should define components based on areas of expertise.

Thanks,

Kristof

On

Re: [lldb-dev] [llvm-dev] [cfe-dev] [Call for Volunteers] Bug triaging

2018-11-09 Thread Zachary Turner via lldb-dev
I had considered a libraries/Backends:Other as well that would be separate
from libraries/Other

On Fri, Nov 9, 2018 at 11:20 AM Derek Schuff  wrote:

> I wonder if backends are a special case to the heuristic of "let's not
> make a bug component for code components that are too small".  LLVM is
> factored to cleanly separate backend code, to the point where it's the one
> thing you can leave out at compile time; this can disincentivize people to
> care about bugs in backends that they don't use (and conversely backends
> seem like the most common/best supported out-of-tree use case). There's
> obviously a lot of variance in how actively-developed the backends are and
> how many people care about them, but it seems like if we care enough to
> have the code in-tree then maybe we care enough to have a bug component too.
>
> On Fri, Nov 9, 2018 at 10:45 AM Kristof Beyls via llvm-dev <
> llvm-...@lists.llvm.org> wrote:
>
>> Hi Zach,
>>
>> Thanks for elaborating.
>> I like your proposal. I agree it still groups per area of expertise. And
>> it makes the set of components we have easier to manage.
>> Before making changes though I hope to hear opinions from others on this.
>> What do others think?
>>
>> Thanks,
>>
>> Kristof
>>
>>
>> On 9 Nov 2018, at 18:05, Zachary Turner  wrote:
>>
>> To elaborate, I didn't mean to group all components with less than 10
>> bugs into one massive component.  Rather, to do it separately for each
>> subcomponent.  Grouping by expertise is fine, but I would argue that a
>> component with 2 or 3 bugs filed per year is not a very useful component.
>> There has to be some kind of bar for having a component otherwise you end
>> up in the situation we have now.
>>
>> If you apply this algorithm to the existing set of components, you end up
>> with something like this:
>>
>> Clang:
>> * New Bugs
>> * C++
>> * Frontend
>> * Formatter
>> * LLVM Codegen
>> * Static Analyzer
>> * Driver
>> * Modules
>> * libclang
>> * Other
>>
>> clang-tools
>> * clang-tidy
>> * Other
>>
>> compiler-rt
>> * All Bugs
>>
>> Documentation
>> * All Bugs
>>
>> libc++
>> * All Bugs
>>
>> libraries
>> * Backend:X86
>> * Scalar Optimizations
>> * Common Code Generator Code
>> * Backend:AMDGPU
>> * Loop Optimizer
>> * Backend:WebAssembly
>> * Backend:ARM
>> * DebugInfo
>> * Backend:AArch64
>> * MC
>> * GlobalISel
>> * Core LLVM classes
>> * Global Analyses
>> * Interprocedural Optimizations
>> * Support Libraries
>> * Backend:PowerPC
>> * Linker
>> * Transformation Utilities
>> * Other
>>
>> lld
>> * ELF
>> * COFF
>> * Other
>>
>> lldb
>> * All Bugs
>>
>> LNT
>> * All Bugs
>>
>> new-bugs
>> * All Bugs
>>
>> OpenMP
>> * Clang Compiler Support
>> * Runtime Support
>>
>> Packaging
>> * All Bugs
>>
>> Phabricator
>> * All Bugs
>>
>> Polly
>> * All Bugs
>>
>> Runtime Libraries
>> * libprofile
>>
>> Test Suite
>> * All Bugs
>>
>> tools
>> * All Bugs
>>
>> Website
>> * All Bugs
>>
>> XRay
>> * All Bugs
>>
>> I don't think it's helpful to have what essentially amounts to lots of
>> dead components, because it causes confusion for bug reporters as well as
>> triagers.  I also don't think the above split is radically different than
>> what is already there, and for the most part, it still *is* organized by
>> expertise.  It also means you need to find less volunteers to add
>> themselves to the cc list for various components.  Instead of needing to
>> find a separate volunteer for Hexagon, MSP430, PTX, RISC-V, Sparc, Bitcode
>> Writer, and MCJIT, each of which has only 1 bug each (so in each case
>> you're looking for a needle in a haystack to find the right person and get
>> them to volunteer), you only need to find 1 for all of them, and there's a
>> good chance that person will be at least somewhat familiar with backends in
>> general and so know who the right person to talk to is in each case.
>>
>> Anyway, just my thoughts.
>>
>> On Fri, Nov 9, 2018 at 12:19 AM Kristof Beyls 
>> wrote:
>>
>>> Hi Zach,
>>>
>>> Thanks for putting the data in a spreadsheet - that’s easier to navigate.
>>>
>>> And thanks for re-raising the question whether we have the right
>>> components in bugzilla.
>>> As I think this could be an area for lots of different opinions, without
>>> any near-perfect solution, it has the potential to be a discussion that
>>> drags on for a long time.
>>> I thought half of all bugs not getting triaged was a serious enough
>>> problem to try and tackle first (with this mail thread) before aiming to
>>> improve the component breakdown in bugzilla.
>>> I think that setting default-cc lists on the components we have
>>> currently is largely orthogonal to reducing/merging components, as we can
>>> always merge default-cc lists when we merge components.
>>>
>>>
>>> On actually coming up with a refined list of components: I think we’ll
>>> need to define/agree first on what guiding principles we follow when
>>> deciding something is worthwhile to be a separate component.
>>> Over the past few weeks I’ve heard a number o

Re: [lldb-dev] [llvm-dev] [cfe-dev] [Call for Volunteers] Bug triaging

2018-11-09 Thread via lldb-dev
I also think that backends are a special case, and each should have its own 
component.  Also a code owner, which I think is already the case; and just like 
ensuring patches get reviewed, a backend code owner should ensure there is a 
triager.  It makes the list of components a bit longer, but adds no confusion 
to anyone trying to file a bug.

Actually I'd say "libraries" as a higher-level component is more confusing, as 
a newcomer essentially never has to deal with LLVM libraries as a concept.
--paulr

From: lldb-dev [mailto:lldb-dev-boun...@lists.llvm.org] On Behalf Of Zachary 
Turner via lldb-dev
Sent: Friday, November 09, 2018 2:35 PM
To: Derek Schuff
Cc: llvm-dev; Kristof Beyls; nd; Clang Dev; LLDB Dev
Subject: Re: [lldb-dev] [llvm-dev] [cfe-dev] [Call for Volunteers] Bug triaging

I had considered a libraries/Backends:Other as well that would be separate from 
libraries/Other

On Fri, Nov 9, 2018 at 11:20 AM Derek Schuff 
mailto:dsch...@google.com>> wrote:
I wonder if backends are a special case to the heuristic of "let's not make a 
bug component for code components that are too small".  LLVM is factored to 
cleanly separate backend code, to the point where it's the one thing you can 
leave out at compile time; this can disincentivize people to care about bugs in 
backends that they don't use (and conversely backends seem like the most 
common/best supported out-of-tree use case). There's obviously a lot of 
variance in how actively-developed the backends are and how many people care 
about them, but it seems like if we care enough to have the code in-tree then 
maybe we care enough to have a bug component too.

On Fri, Nov 9, 2018 at 10:45 AM Kristof Beyls via llvm-dev 
mailto:llvm-...@lists.llvm.org>> wrote:
Hi Zach,

Thanks for elaborating.
I like your proposal. I agree it still groups per area of expertise. And it 
makes the set of components we have easier to manage.
Before making changes though I hope to hear opinions from others on this.
What do others think?

Thanks,

Kristof



On 9 Nov 2018, at 18:05, Zachary Turner 
mailto:ztur...@google.com>> wrote:

To elaborate, I didn't mean to group all components with less than 10 bugs into 
one massive component.  Rather, to do it separately for each subcomponent.  
Grouping by expertise is fine, but I would argue that a component with 2 or 3 
bugs filed per year is not a very useful component.  There has to be some kind 
of bar for having a component otherwise you end up in the situation we have now.

If you apply this algorithm to the existing set of components, you end up with 
something like this:

Clang:
* New Bugs
* C++
* Frontend
* Formatter
* LLVM Codegen
* Static Analyzer
* Driver
* Modules
* libclang
* Other

clang-tools
* clang-tidy
* Other

compiler-rt
* All Bugs

Documentation
* All Bugs

libc++
* All Bugs

libraries
* Backend:X86
* Scalar Optimizations
* Common Code Generator Code
* Backend:AMDGPU
* Loop Optimizer
* Backend:WebAssembly
* Backend:ARM
* DebugInfo
* Backend:AArch64
* MC
* GlobalISel
* Core LLVM classes
* Global Analyses
* Interprocedural Optimizations
* Support Libraries
* Backend:PowerPC
* Linker
* Transformation Utilities
* Other

lld
* ELF
* COFF
* Other

lldb
* All Bugs

LNT
* All Bugs

new-bugs
* All Bugs

OpenMP
* Clang Compiler Support
* Runtime Support

Packaging
* All Bugs

Phabricator
* All Bugs

Polly
* All Bugs

Runtime Libraries
* libprofile

Test Suite
* All Bugs

tools
* All Bugs

Website
* All Bugs

XRay
* All Bugs

I don't think it's helpful to have what essentially amounts to lots of dead 
components, because it causes confusion for bug reporters as well as triagers.  
I also don't think the above split is radically different than what is already 
there, and for the most part, it still *is* organized by expertise.  It also 
means you need to find less volunteers to add themselves to the cc list for 
various components.  Instead of needing to find a separate volunteer for 
Hexagon, MSP430, PTX, RISC-V, Sparc, Bitcode Writer, and MCJIT, each of which 
has only 1 bug each (so in each case you're looking for a needle in a haystack 
to find the right person and get them to volunteer), you only need to find 1 
for all of them, and there's a good chance that person will be at least 
somewhat familiar with backends in general and so know who the right person to 
talk to is in each case.

Anyway, just my thoughts.

On Fri, Nov 9, 2018 at 12:19 AM Kristof Beyls 
mailto:kristof.be...@arm.com>> wrote:
Hi Zach,

Thanks for putting the data in a spreadsheet - that’s easier to navigate.

And thanks for re-raising the question whether we have the right components in 
bugzilla.
As I think this could be an area for lots of different opinions, without any 
near-perfect solution, it has the potential to be a discussion that drags on 
for a long time.
I thought half of all bugs not getting triaged was a serious enough problem to 
try and tackle first (with this mail thread) before aiming to improve the 
component breakdo

Re: [lldb-dev] [CMake] LLDB framework / shared library

2018-11-09 Thread Alex Langford via lldb-dev
cc lldb-dev since the original message cc'd it.

On 11/9/18, 12:31 PM, "Alex Langford"  wrote:

Hi Stefan,

Thanks for taking the time to improve LLDB's CMake infrastructure!

(1) I don't entirely remember the reason I had separated them out into 
separate targets. A post-build step would be fine, so feel free to merge these.
(2) I have no problems with this. If I remember correctly, I wanted to put 
everything into LLDBFramework.cmake originally and include it if 
LLDB_BUILD_FRAMEWORK got set, but that proved more difficult than I realized. I 
think what you are suggesting is better than what I ended up doing. Feel free 
to make that change.
(3) I think this is a good idea. I found this confusing as well.
(4) If that is the case, I think I agree that the Xcode behavior is better. 
(5) I'm not sure that this is going to actually simplify things. I don't 
think it's possible to do in source/API/CMakeLists.txt because the tools 
haven't been added as targets yet. With the current CMake logic, you could pull 
this logic into its own section that happens after the tools are added as 
targets. I don't find this any better than what we have now.
(6) I'm not sure why this is the case actually. I believe this was added by 
beanz originally, I just moved this check to be closer to the beginning of the 
build. If it works with CMake versions less than 3.7 then I have no issues with 
removing it.

Let me know if something is unclear or you have further questions/concerns.

Alex


On 11/9/18, 9:38 AM, "sgraen...@apple.com on behalf of Stefan Gränitz" 
 wrote:

Hello Alex, hello Pavel

I spent some time creating/streamlining our CMake infrastructure 
downstream of LLDB and learned a few things about bundles, versions, 
code-signing etc. (mostly on the Darwin side of things). I am currently sorting 
out what can be upstreamed and prepare reviews.

Some work is still todo for the LLDB shared library/framework (for 
simplicity I will call it LLDB.framework). It would be great to know, if you 
have concerns or comments on the following points:

(1) The liblldb target builds the actual LLDB.framework, while the 
lldb-framework target adds headers, symlinks, etc. What is the reason for this 
separation? Can I merge that into one target with post-build steps?

(2) In previous reviews there was an effort to centralize the code for 
building LLDB.framework, which makes sense to me. With the current 
LLDBFramework.cmake approach, however, it’s spread over at least 3 different 
files (lldb/CMakeLists.txt for init and lldb/source/API/CMakeLists.txt for 
actual definition). In a similar case downstream, I did all that in a single 
CMakeLists.txt in the source folder. While I see that LLDBFramework affects the 
whole project, I don’t see why we need a separate LLDBFramework.cmake (BTW 
upstream it’s included only once). Do you think I can move things to 
lldb/source/API/CMakeLists.txt where possible?

(3) Currently the build directory for LLDB.framework is determined from 
LLDB_FRAMEWORK_INSTALL_DIR, which I think is a little confusing. Can I clean 
this up? (e.g. having a LLDB_FRAMEWORK_BUILD_DIR)

(4) With Xcode, executables are emitted in bin and copied to 
LLDB.framework where necessary. CMake emits them into LLDB.framework directly 
and creates symlinks to bin. With LLVM_EXTERNALIZE_DEBUGINFO on Darwin, this 
has the effect, that by default their dSYMs will end up in LLDB.framework. 
Thus, I would prefer the Xcode behaviour here.

(5) Couldn’t (4) also simplify the INCLUDE_IN_SUITE logic? I would 
consider it to be LLDB.framework’s responsibility to set dependencies and 
adjust RPATHs for all required artefacts. The tools wouldn’t need to care about 
that (though, they could still check LLDB_BUILD_FRAMEWORK). The RPATH-login for 
case ARG_INCLUDE_IN_SUITE && LLDB_BUILD_FRAMEWORK is quite complicated though 
and I wonder if there are strong reasons not to do that. What do you think?

(6) Just out of interest: why is LLDB_BUILD_FRAMEWORK is not supported 
on CMake < 3.7?

Best
Stefan







___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


[lldb-dev] Problems `target variable` command.

2018-11-09 Thread Zachary Turner via lldb-dev
I tried to run this command:

(lldb) target variable "std::numeric_limits::max_exponent"

In Variable.cpp:386 we run a regex against the input string which results
in the above string being cut down to just `std::numeric_limits`.  So then
I search my debug info and don't find anything.

What I need is for this string to be passed precisely as is to
SymbolFile::FindGlobalVariables.

My question is: is this just a limitation of `target variables` that is by
design, or can this be fixed?

Note that I think even C++14 variable templates are broken because of this,
so if someone writes:

template
constexpr T Pi = T(3.1415926535897932385L);

And inside of LLDB they write `target variable Pi` it won't work.

I think the DWARF and PDB are fundamentally different here in that in DWARF
you've got a DW_TAG_variable whose name is Pi and it will have
DW_TAG_template_type_parameter of type long double.  However, in PDB the
only way to find this is by actually searching for the string Pi (or
whatever instantiation you want).  If you just search for Pi it will be
impossible to find.

So, I think there are two problems to fix:

1) We need to search for the exact thing the user types, and if that fails,
then try using the Regex expression.  That will fix the problem for PDB.

2) It doesn't even work for DWARF currently because the regex filter throws
away the .  So it does find all of the DW_TAG_variables whose name is
Pi, but then it tries to evaluate  as a sub-expression, which
obviously isn't correct.

Thoughts?
___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev