Guidance in contributing to the project

Hello, I am Usman Akinyemi from Outreachy program, I just got selected for the second round, I got interesed in this project. But, after joining the discourse group, I seem not to understand what is going on, can someone please direct me on what and how to be able to contribute to this project. I currently taking C++ as a course in Univerisity and also a lover of Linux.

Hi Usman!

Thank you for reaching out.

I’m not surprised it’s not very easy to understand many of the discussions happening on LLVM Discourse without a deep understanding of LLVM, compilers, and related technologies.
There are a lot of different sub-projects in LLVM, so even the biggest LLVM expert probably does not understand some of the discussions here :wink:

A few documents that might help you with how to get started are the following:

I assume that even after reading those, it may not be straightforward to figure out how to pick something to start contributing on. If that’s the case, it may be helpful to chat and ask questions on our Discord server, in the #beginners channel.
Also, a number of experienced LLVM community members make themselves available regularly on video chat to allow anyone with an interest in LLVM to have a chat with them. We call this concept “Office Hours”. I’d be more than happy to have a chat with you during one of my office hours, which I hold every 2 weeks on Wednesday at 9.30 am CET. See Getting Involved — LLVM 17.0.0git documentation for more details.

I hope this helps at least a bit?

Kristof

4 Likes

Welcome Usman! Kristof already gave you a lot of great starting points. I would also encourage you to check out our Outreachy project here: Outreachy internships working with LLVM

This provides information on what sorts of thing you can do for the contribution period.

You can also try reaching out the mentor for the project.

If you have anymore questions, you can always post in the Beginners category on Discourse.

2 Likes

Thank you very much for this information, I really appreciate it.

Hello,

My name is Mark Heim, and I am also new at contributing to large open source projects (I have worked on small open source projects here and there). I am also interested in contributing to the LLVM project as a part of Outreachy. I have some C++ experience and have worked with LLVM in the past as a part of a graduate compiler course at my university. It seems C++ is not my best language, especially when debugging template errors, but I also hope I will be able to contribute toward the project with what I do know.

Hello everyone!
I’m Megha Sharma. I’m an outreachy applicant for May cohort. I have a bit experience in open source from Hactoberfest but I am inexperienced when it comes to contributing on large scale projects. I am currently in my final year in university and have studied C++ as my main language hence, I’ll be comfortable in working with C++ and also have studied Compiler construction in university. I followed all the steps listed here: Outreachy internships working with LLVM and joined the community but I feel lost since there is a lot going on and am not able to make a start point for contributing. It would be great if any mentor or fellow community member could guide me on how to initialise things.
Thanks!

Have you browsed the good first issues?

Yes, I did browse the good first issues. Do we need to comment on any of the issue we want to work on and start with it or the mentor would assign us first?

Hello Everyone! I am Aryan Godara, I am here from the Outreachy page, and like others, I am a bit lost right now on how to get started with contributing to the project.
Which issue should I work on first? (There are multiple ones open, and I don’t know if others are already working on some issue)
I have previous experience in coding in C/C++ and golang, rust, etc.
GitHub: AryanGodara (Aryan Godara) · GitHub

It’s good to see so much interest from everyone from Outreachy :slight_smile: Feel free to email me (my email address is on the Outreachy project page) if you have any specific questions.

You can start by working on an introductory task (such as an issue labeled “good first issue” in the bug tracker) and read through the LLVM contribution guide that Kristof linked to. We don’t have to assign these tasks to you, so feel free to pick and choose anything that you think will show your skills.

Once you’ve worked on it and fixed the problem, the community and I can help you submit it for review and get it approved, then if you’re successful then you could be selected for the internship and can start working on the tasks listed on the Outreachy project page.

3 Likes

Greetings eveyone,
I’m Samuel Maina. I’m an Outreachy applicant for May 2023 cohort. I have been coding in C++ for the last 2 years and have done a compiler design course in university. Looking forward to learning, contributing and collaborating with you all.
Thanks!

I don’t know how Outreachy is supposed to work, but you could assign the issues to yourself.

Hey,
I think there is less contributors on the clang static analyzer side (or clang-tidy) and i think that project needs more contributors, as we are having more release of C++ , we have to care and correctly handles those strange behaviour that might create lot of issues in production. I’d love to see more participation in static analysis side.

One feature that any of you might interested to work is handling the string_view.
for e.g.
As we know string_view should not be used to store view of a temporary string. for e.g.

 
string s {"Hello"};
string_view sv {s+ " World!"};// warning
cout << sv;
 

this snippet has undefined behaviour , it might compile successfully but it has issue. Initializer expression for sv results in a temporary string , string_view then stores a pointer to the temporary and at the end of the second line, temporary string is destroyed, leaving the string_view with a dangling pointer.

Generating warning for case like this would be helpful(I was thinking to implement it in CSA but not enough time), You can further ask more questions here Discord .

Thanks,
Shivam

Hello, I’m Emmanuel Opatola, I’m an Outreachy applicant and a final year student in Computer Science and Technology with some knowledge on Compiler construction, assembly language, Computer architecture etc… I major in C++ with knowledge in clang, g++ and MSVC compilers and understanding of translation units and linkage… I’m eager to contribute and willing to learn new things as required.

hello everyone myself suman meena a second-year b.tech student having experience in c++ programming language and some basic knowledge of computer architecture. I’m too an Outreachy applicant for May 2023 cohort. I am interested in contributing to this project but do not have any experience in open source so finding it difficult to contribute. I have forked the project and cloned it to my pc and looked at some good issue labelled bugs but I do not know where to change the code and how to see the effects of our code change. are there any resources I should explore first for a better knowledge of the compiler?

I have forked the project and cloned it to my pc and looked at some good issue labelled bugs but I do not know where to change the code and how to see the effects of our code change.

We do have one tutorial to explain the contribution process. You may follow that for any small change.
https://llvm.org/docs/MyFirstTypoFix.html

1 Like

thank you for the help

I have downloaded the code and build it successfully.However,when I run tests using make check-clang command.I am getting this error after multiple attempts. Please help me out

In file included from C:/Users/SAM/Desktop/llvm/llvm-project/clang/include/clang/Sema/Sema.h:39,
                 from C:/Users/SAM/Desktop/llvm/llvm-project/clang/include/clang/Serialization/ASTReader.h:29,
                 from C:/Users/SAM/Desktop/llvm/llvm-project/clang/tools/c-index-test/core_main.cpp:21:
C:/Users/SAM/Desktop/llvm/llvm-project/clang/include/clang/Basic/Builtins.h:53:28: error: expected identifier before ',' token
   53 | #define HEADER(ID, NAME) ID,
      |                            ^
C:/Users/SAM/Desktop/llvm/llvm-project/clang/include/clang/Basic/BuiltinHeaders.def:30:1: note: in expansion of macro 'HEADER'
   30 | HEADER(PTHREAD_H, "pthread.h")
      | ^~~~~~
make[3]: *** [tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/build.make:92: tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.obj] Error 1
make[2]: *** [CMakeFiles/Makefile2:45627: tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:49902: tools/clang/test/CMakeFiles/check-clang.dir/rule] Error 2
make: *** [Makefile:13891: check-clang] Error 2

Hello everyone, Myself Priyanshi Agarwal, I have been selected for the second round of Outreachy internship program and I eagerly want to contribute to this project since I have a great interest in C++ and I also have a basic knowledge about compilers but I am a bit confused that how to start. Please tell me that do I need to learn Clang and cmake before starting or I can start straightaway?

hii priyanshi look at the tutorial link shivam has provided you will surely get an idea
https://llvm.org/docs/MyFirstTypoFix.html