[lldb-dev] Jobs working on LLVM, Clang, and LLDB at Apple

2016-03-28 Thread Duncan P. N. Exon Smith via lldb-dev
The Apple compiler and debugger teams are seeking exceptional engineers (to 
work on LLVM, Clang and LLDB) who are passionate about improving software 
development tools.  Detailed job descriptions follow.  Please send all 
responses to llvm-job-ap...@group.apple.com, including the relevant job title 
and a CV.


1. Clang Frontend Engineer

In this position, you will work on general frontend development in Clang, with 
a particular focus on engineering new language and compiler features.  
Experience with development of C++ frontends is desirable for this position, 
but all strong candidates with frontend experience are encouraged to apply.

Key Qualifications

* Strong C++ coding skills and a passion for writing clean, high performing 
code.
* Knowledge of compiler frontends and related tools.
* Familiarity with compiler optimizations, code generation, and overall design 
of compilers.
* Expert knowledge of C and C++, with a detailed understanding of the C++ 
standard and Itanium C++ ABI.
* (Optional, but a big plus) Experience with Objective C/C++.
* (Optional, but a big plus) Knowledge of LLVM/Clang and open source 
development.
* Excellent communication and interpersonal skills.


2. Compiler Engineer

In this position, you will make sure we ship a high quality compiler to our 
users.  This involves working on various components of the LLVM toolchain to 
support new features, fix bugs, and improve performance.  Experience with 
compiler development is desirable for this position, but strong candidates with 
other kinds of system software experience are also encouraged to apply.

Key Qualifications:

* Strong C++ coding skills and a passion for writing great code.
* Familiarity with compiler optimizations, code generation and overall design 
of compilers.
* Experience debugging a complex software stack and/or system level issues.
* Strong track record of building high quality software.
* Strong communication and teamwork skills.


3. LLVM/Clang - QE

The Apple compiler team is hiring experienced Quality Engineers to drive 
quality improvements in LLVM/Clang and associated low level tools.  You will be 
working closely with the compiler team to develop comprehensive test coverage 
for the suite of compiler tools with a heavy focus on automation and 
integration testing. 

Key Qualifications

* Experienced in C/C++ development 
* Knowledge of how compilers  work
* Experience with Python
* Ability to investigate and debug difficult problems
* Ability to work in cross functional teams 
* (Optional, but a big plus) Knowledge of LLVM/Clang and open source 
development.
* Excellent communication and interpersonal skills.
* Experience with Jenkins CI systems.


4. LLDB Engineer

We are seeking an enthusiastic engineer to improve the development experience 
across all of our platforms.  The LLDB team blends compiler technology and a 
deep understanding of the runtime representation of running processes to enable 
a rich debugging experience, as well as enabling the Swift REPL and 
Playgrounds.  You will be working with a talented team to improve on 
established tools and find new ways to apply technology from LLVM, Clang, and 
Swift to exploring running code.

Key Qualifications

* Experienced in C/C++ development 
* Knowledge of how compilers work
* Knowledge of modern operating systems
* Ability to investigate and debug difficult problems
* Ability to work in cross functional teams 
* (Optional) Familiar with Swift
* (Optional) Experience with Python
* (Optional, but a big plus) Knowledge of LLVM/Clang and open source 
development.
* Excellent communication and interpersonal skills.


5. LLDB - QE

We are looking for a experienced Quality Engineer who is passionate about 
improving software quality.  You will work closely with the Debugger team to 
develop and improve our automated testing and design new integration tests for 
LLDB.  You will need to be able to write and debug complex C/C++ code and delve 
deep into the complexities of debugging on all Apple devices. 

Key Qualifications

* Experienced in C/C++ development 
* Knowledge of how compilers and debuggers work
* Experience with Python
* Ability to investigate and debug difficult problems
* Ability to work in cross functional teams with varying schedules.
* (Optional, but a big plus) Knowledge of LLVM/Clang and open source 
development.
* Excellent communication and interpersonal skills.
* Experience with CI systems.


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


Re: [lldb-dev] [cfe-dev] [Openmp-dev] [llvm-dev] What version comes after 3.9? (Was: [3.9 Release] Release plan and call for testers)

2016-06-28 Thread Duncan P. N. Exon Smith via lldb-dev

> On 2016-Jun-28, at 13:17, Richard Smith via lldb-dev 
>  wrote:
> 
>>> I think I agree with Chris with 3.10 being the worst possible outcome.
>> 
>> I'd be interested to understand why you or Chris thing 3.10 is the worst 
>> possible outcome.
> 
> Personally: I think it would be a bad outcome, because if we go to 3.10, I do 
> not see when we would ever transition to 4.0. What change would be "large 
> enough" to classify as a new major version of all of LLVM? Given that we are 
> (presumably) going to have a "sliding window" support story for LLVM IR 
> changes, and even LLVM IR changes are irrelevant to a significant number of 
> LLVM subprojects (all of which share the same versioning scheme), it's not 
> clear to me what would justify this.
> 
>> Chris has said it is because he thinks we'll never change the "3", but I 
>> don't understand why 3.10 is worse than 3.9 was in that respect. I happen to 
>> agree that we'll never change the "3", but I don't think this makes 3.10 a 
>> particularly bad choice.
> 
> We've historically gone from x.9 to x+1.0, so this sets precedent, and we 
> seem to have the energy and motivation to discuss and possibly change our 
> version numbering scheme right now. For me, it's just a question of "if not 
> now, then when?".
> 
>> I'm seeing pretty much zero support for continuing to have a major/minor 
>> split. As such, I pretty strongly suggest that as a community we move to a 
>> single integer that increments every (time based) release, and a .N that 
>> increments with every patch release off of that branch. GCC and numerous 
>> other projects work this way.
>> 
>> I actually don't care at all what the number is: 4 or 40 seem fine.
>> 
>> If 4 seems too confusing, and 40 seems too extreme, how about 10. Seriously. 
>> It seems exactly as good as any other integer to start counting rationally, 
>> and won't confuse people by looking like a 4.0 release.
> 
> I think going to 10 or 40 is likely to be confusing, because there'll be two 
> different ways to refer to the same version (people will say 3.10 when 
> referring to version 10, or 38 when referring to version 3.8, respectively). 
> This happened to Java in the version 1.6 / version 6 numbering transition.
> 
> In order to preserve numbering continuity and minimize confusion, if we go 
> from three-component versions (major.minor.patch) to two-component versions 
> (major.patch), I would suggest we go from x.y.z to x+1.0. (This is also 
> consistent with how GCC handled the transition.)

I agree with Richard.  While I don't have a strong opinion about 3.10.x vs. 4.x 
vs. 4.0.x (assuming we document our *actual* bitcode compatibility promise), I 
think both 10.x and 40.x are actively confusing.
___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


Re: [lldb-dev] [cfe-dev] [llvm-dev] [Openmp-dev] What version comes after 3.9? (Was: [3.9 Release] Release plan and call for testers)

2016-06-28 Thread Duncan P. N. Exon Smith via lldb-dev

> On 2016-Jun-28, at 16:22, Hans Wennborg via cfe-dev  
> wrote:
> 
> On Tue, Jun 28, 2016 at 2:37 PM, Chris Lattner via llvm-dev
>  wrote:
>> On Jun 28, 2016, at 12:55 PM, Chandler Carruth via Openmp-dev
>>  wrote:
>>> 
>>> I think I agree with Chris with 3.10 being the worst possible outcome.
>> 
>> 
>> I'd be interested to understand why you or Chris thing 3.10 is the worst
>> possible outcome.
>> 
>> Chris has said it is because he thinks we'll never change the "3”,
>> 
>> 
>> Yes, that is one reason.
>> 
>> but I don't understand why 3.10 is worse than 3.9 was in that respect.
>> 
>> 
>> Because it breaks from the established pattern we have, and means that we
>> never get to 4.
>> 
>> I happen to agree that we'll never change the "3", but I don't think this
>> makes 3.10 a particularly bad choice.
>> 
>> 
>> If you agree that we’ll never change the 3, then you are staying that you
>> believe it is ok for the version number to be meaningless.  In that case, I
>> can’t see why you’d object to a policy change.
>> 
>> I believe that the version number is important.  Which is why I care so much
>> about it :-)
>> 
>> I think/hope we can agree that “Bitcode compatibility” is an obsolete notion
>> to encode into the version number - from a historical perspective, we only
>> used that as rationale because it happened to align well for the 1.9 to 2.0
>> conversion and then used it as an excuse to shed some legacy in the 3.0
>> timeframe.
>> 
>> Given that, and given that we have a time based release, we should either
>> leave the versioning alone (3.9/4.0/4.1) or switch to a semantic versioning
>> model 3.9/4.0/5.0/6.0 or 3.9/40/41/42).
> 
> Since there seems to be some kind of rough consensus forming around
> the idea of moving towards a model with x.y version numbers where we
> increment x every six months and y for the "dot" releases in between,
> let's take it to a code review:
> 
> http://reviews.llvm.org/D21821
> 
> What angles am I missing? I'm sure this can break the world in
> interesting ways. (It looks like Clang's cmake config is already set
> up for this though, by checking CLANG_HAS_VERSION_PATCHLEVEL).

For one thing, I can't find the patch on the mailing list ;).  I'm guessing
you missed adding llvm-commits as a subscriber?
___
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev