GSoC
Hello anyone this concerns, My name is Maria Kalikas and I am a senior majoring in Computer Science at The University of Akron. My familiarity and continuous reading of the C++ Standard has encouraged me to extend the previously developed support for concepts in GCC. I want to modify the implementation to conform with the current specification in the C++ Standard. I am curious to know if this would be a good project to propose for Google Summer of Code and am interested in finding a mentor. I took a Compiler Design course in Spring 2017 where I designed a compiler for a C-like programming language. My implementation is written in C++. Since completing the course, I became familiar with Clang and LLVM and am currently completing a capstone project where I am creating a virtual machine to implement the C++ abstract machine using LLVM instructions and rewriting the conversions, expressions and declarations specified in the C++ Standard as three address code instructions. I look forward to any responses and feedback. Thank you, Maria Kalikas
Re: GSOC 2018 - Textual LTO dump tool project
On Tue, Mar 13, 2018 at 5:30 AM, Hrishikesh Kulkarni wrote: > Hi, > > Thanks. I have tried to incorporate suggestions and prepared a revised draft > of proposal for GSOC. Please find the same attached herewith. Your > suggestions in regard with this draft would definitely help me to improve it > further for submission. Thanks, it looks very good now. You have essentially duplicated items in 1. and 2., namely --summary= and Dumping of IPA summaries. I would move some of the 1. items over to 2., apart from --summary I'd also move --cgraph-dot. Richard. > > Drive link to Draft Proposal: > > https://docs.google.com/document/d/1-jYwwDWsHQwMaxVsHFBrJ9EiCAev7ljTDLS1xMwvK5w/edit > > > Regards, > > Hrishikesh > > > > > On Mon, Mar 12, 2018 at 4:45 PM, Richard Biener > wrote: >> >> On Sun, Mar 11, 2018 at 8:23 PM, Hrishikesh Kulkarni >> wrote: >> > Hi, >> > >> > Greetings! Please find my draft proposal for GSOC attached herewith. I >> > am >> > very grateful to all of you for your inputs, suggestions and directions. >> > I >> > have tried to assimilate these inputs received from you to convert it >> > into a >> > proposal. Your suggestions in regard with this draft would definitely >> > help >> > me to convert it into final proposal for submission. In addition, could >> > you >> > please suggest the possible extensions those can be added to dump tool? >> > >> > >> > Drive link to Draft Proposal: >> > >> > >> > https://docs.google.com/document/d/1-jYwwDWsHQwMaxVsHFBrJ9EiCAev7ljTDLS1xMwvK5w/edit >> >> The proposal looks a bit sparse when giving details about the actual >> project. >> I'd suggest to clarify at least the deliverables. I suggest for 1. add a >> 1 c) >> that specifies what should be working, for example >> >> lto-dump -l >> >> should dump a list of variables and functions contained in the IL >> >> lto-sump -s >> >> should dump detailed info about the symbol (using the symtab dump >> infrastructure) >> >> lto-dump -f >> >> should dump the function body of the function with (using the gimple >> dump infrastructure) >> >> the lto-dump tool should be verified to work on both WPA-time and >> LTRANS-time >> objects. >> >> Thus your 2) a) should be possible with 1) already. 2) would then contain >> dumping of IPA summaries as major part apart from visualizing the >> callgraph. >> For visualizing the (full) callgraph you need to handle multiple LTO >> IL input files. >> Those two pieces should be enough for 2) unless usability issues spill >> over >> from 1). >> >> In the introduction I miss some general words about the LTO IL, like that >> it >> is non-self-describing bytecode which is documented only by the code >> reading/writing it and thus hard to debug. It also misses to lay out the >> overall structure of a LTO IL file (you are already going into detail with >> IPA passes so this missing stands out). >> >> Richard. >> >> > >> > Regards, >> > >> > Hrishikesh >> > >> > >> > >> > On Tue, Mar 6, 2018 at 8:59 PM, Jan Hubicka wrote: >> >> >> >> > On Tue, Mar 6, 2018 at 4:02 PM, Jan Hubicka wrote: >> >> > >> On Tue, Mar 6, 2018 at 2:30 PM, Hrishikesh Kulkarni >> >> > >> wrote: >> >> > >> > Hi, >> >> > >> > >> >> > >> > Thank you Richard and Honza for the suggestions. If I understand >> >> > >> > correctly, >> >> > >> > the issue is that LTO file format keeps changing per compiler >> >> > >> > versions, so >> >> > >> > we need a more “stable” representation and the first step for >> >> > >> > that >> >> > >> > would be >> >> > >> > to “stabilize” representations for lto-cgraph and symbol table ? >> >> > >> >> >> > >> Yes. Note the issue is that the current format is a 1:1 >> >> > >> representation of >> >> > >> the internal representation -- which means it is the internal >> >> > >> representation >> >> > >> that changes frequently across releases. I'm not sure how Honza >> >> > >> wants >> >> > >> to deal with those changes in the context of a "stable" IL format. >> >> > >> Given >> >> > >> we haven't been able to provide a stable API to plugins I think >> >> > >> it's >> >> > >> much >> >> > >> harder to provide a stable streaming format for all the IL >> >> > >> details >> >> > >> >> >> > >> > Could you >> >> > >> > please elaborate on what initial steps need to be taken in this >> >> > >> > regard, and >> >> > >> > if it’s feasible within GSoC timeframe ? >> >> > >> >> >> > >> I don't think it is feasible in the GSoC timeframe (nor do I think >> >> > >> it's feasible >> >> > >> at all ...) >> >> > > >> >> > > I skipped this, with GSoC timeframe I fully agree. With >> >> > > feasibility >> >> > > at all not so >> >> > > much - LLVM documents its bitcode to reasonable extend >> >> > > https://llvm.org/docs/BitCodeFormat.html >> >> > > >> >> > > Reason why i mentioned it is that I would like to use this as an >> >> > > excuse to get >> >> > > things incrementally cleaned up and it would be nice to keep it in >> >> > > mind while >> >> > > working on this. >> >> > >> >> > Ok. It's proba
Re: GSOC
Hello Prashant, On Thu, Mar 08 2018, prashant kumar wrote: > Hello sir my self *Prashant kumar *second year B.TECH student and i am > interesting in *"GCC plugin Api" *project .i have a good hand in c,c++ > languages .Can u tell me what the further process i have to do and what > kind of thing i have to do first and foremost, please discuss any GSoC idea or topic, use the gcc@gcc.gnu.org mailing list (CCed), this way other people may also participate in the discussion which will eventually help you as well. Moreover, in your particular case, you sent me your message while I was on vacation and so it took quite some time before I got to replying. Other members of the GCC community might have done that meanwhile. The aim of the gcc API project would be to start building a real GCC API for plugins, so that simple but already useful plugins (operating on GIMPLE level) could be written that use only this API (as opposed to the current state where they can - actually they have to - use any normal public symbol there is in GCC. I do not think it is reasonable to attempt make the API really entirely compiler agnostic but whenever practical, the interface should be built on top of generic compiler constructs (e.g. statements and operands as opposed to gimple and trees), for many reasons. In the first half of the project one would aim to build various dumping plugins... that would simply dump CFG, statements and perhaps also some information about types queried through the new interface. In the second half, you should try to rewrite some existing simple plugins using this API (such as https://pagure.io/funcp-encrypt that is described at https://developers.redhat.com/blog/2017/03/17/diagnosing-function-pointer-security-flaws-with-a-gcc-plugin/ or perhaps the structleak_plugin.c kernel GCC plugin or https://rwmj.wordpress.com/2016/02/24/playing-with-gcc-plugins/ though I have not had a very close look any of those). If you are interested, make sure you can check out the GCC trunk source code, can build GCC from it. The following links should help you: - How to check out our sources using svn and git is described at https://gcc.gnu.org/svn.html and https://gcc.gnu.org/wiki/GitMirror respectively. - Steps linked from https://gcc.gnu.org/install/ show you how to configure, build and test GCC is described in (look for --disable-bootstrap, among other things). - Also make sure you also look at https://gcc.gnu.org/wiki/InstallingGCC and https://gcc.gnu.org/wiki/GettingStarted wiki pages. And while you are at it, try also to look at the source. But you have gone through all of the above and still find a little bit intimidating or difficult to see where to start looking, do not despair. That is something the mentors and the community at large are willing to help you with. Regarding plugins, I'd suggest reading one ore more tutorials on their current implementation (e.g. http://thinkingeek.com/2015/08/16/a-simple-plugin-for-gcc-part-1/) and then look at some real plugins to get the sense of what would need to be APIzied. Good luck, Martin
Re: Queries on GSoC project on OMPD interface
Hello Siyuan, On Mon, Mar 12 2018, LIU SIYUAN wrote: > Dear all, > > Hi, my name is Siyuan and this is my first time using the GCC mailing list! Welcome! > > I’m a senior CS student from Nanyang Technological University, Singapore who > is interested in the GSOC project related to OMPD. > > I personally have experience in C/C++ (development and performance > optimization). I have also taken compiler course and implemented a > mini-compiler (https://github.com/koallen/mini-go). > > I participated in student cluster competitions so I also have experience in > parallel computing (OpenMP, CUDA, MPI, etc.). And that’s why I’m particularly > interested in the OMPD project. > > Could you give me further information if I’m intending to apply for GSoC for > this project? We can, but what kind of information are you looking for? First and foremost, please get GCC sources and make sure you can build GCC from them and then run the testsuite. If you need it, the following links should help you: - How to check out our sources using svn and git is described at https://gcc.gnu.org/svn.html and https://gcc.gnu.org/wiki/GitMirror respectively. - Steps linked from https://gcc.gnu.org/install/ show you how to configure, build and test GCC is described in (look for --disable-bootstrap, among other things). - You may also want to look at https://gcc.gnu.org/wiki/InstallingGCC and https://gcc.gnu.org/wiki/GettingStarted wiki pages. For the OMPD task, you will primarily want to look at the OMP run-time that is in the libgomp subdirectory (and on the libgomp.exp part of the testsuite). You will probably also want to have a look at how to build GDB. The OMPD itself is described in the latest TR of the upcoming version of the OpenMP standard: http://www.openmp.org/wp-content/uploads/openmp-TR6.pdf I assume that once you familiarize with the standard and look at how the OpenMP run-time is organized (at least roughly), you will want to reach out to Jakub (CCed) to figure out how to structure your work. Good luck! Martin
Re: GSoC (Improvements to GCC on Windows)
Hello, On Tue, Mar 13 2018, Ko Phyo wrote: > Hello > > I want to apply the project "Improvements to GCC on Windows" of GCC > foundation. As a student, I have some theorectical knowledges about C/C++ > and compiler technologies. And I am sure that the Windows platform has > steps that are little behind than other open source platforms in pure C/C++ > technology. So I decided to work on GSoC 2018 with your "Windows > Improvement program". Please let me know if I am selected as a mentored > student in yours great project. I will be waiting for your kind reply. Well, please note that you still need to apply formally through the GSoC website to stand a chance to be selected, that does not happen here. We want students to contact us prior to applying so that their proposals and goals make sense. As far as improving GCC on Windows is concerned, we may find it challenging to find you a mentor (I am CCing Jonathan Yong, the cygwin and mingw-w64 maintainer, maybe he has an idea what could be done in this area as a GSoC project and who might mentor it?). Meanwhile, make sure you can build GCC from sources on Windows (I admit I would not know how to do it myself!) and run the testsuite. Good luck, Martin
Re: GSoC (Making C++ concepts conform to the current standard)
Hello Maria, On Wed, Mar 14 2018, Maria Kalikas wrote: > Hello anyone this concerns, > > My name is Maria Kalikas and I am a senior majoring in Computer Science at > The University of Akron. > > My familiarity and continuous reading of the C++ Standard has encouraged me > to extend the previously developed support for concepts in GCC. I want to > modify the implementation to conform with the current specification in the > C++ Standard. I am curious to know if this would be a good project to > propose for Google Summer of Code and am interested in finding a mentor. I personally do not know what the status of C++ concept implementation is, how much it differs from the current standard is or whether making it more up to date would make a good GSoC project. Jason, Nathan, what do you think? (And if so, would you be willing to be a mentor? Can you think of someone else?) Martin > > I took a Compiler Design course in Spring 2017 where I designed a compiler > for a C-like programming language. My implementation is written in C++. > Since completing the course, I became familiar with Clang and LLVM and am > currently completing a capstone project where I am creating a virtual > machine to implement the C++ abstract machine using LLVM instructions and > rewriting the conversions, expressions and declarations specified in the > C++ Standard as three address code instructions. > > I look forward to any responses and feedback. > > Thank you, > > Maria Kalikas
Re: GSoC (Making C++ concepts conform to the current standard)
On 03/14/2018 01:23 PM, Martin Jambor wrote: My familiarity and continuous reading of the C++ Standard has encouraged me to extend the previously developed support for concepts in GCC. I want to modify the implementation to conform with the current specification in the C++ Standard. I am curious to know if this would be a good project to propose for Google Summer of Code and am interested in finding a mentor. I personally do not know what the status of C++ concept implementation is, how much it differs from the current standard is or whether making it more up to date would make a good GSoC project. Jason, Nathan, what do you think? (And if so, would you be willing to be a mentor? Can you think of someone else?) Jason and I have been discussing this. Updating the concepts code would be a good thing. It happens to be one of the C++ standardization meetings this week. nathan -- Nathan Sidwell
Re: GSOC 2018 - Textual LTO dump tool project
Hi, Thanks a lot for inputs and guidance. I have incorporated all the changes in the document. Shall I go ahead and submit the proposal formally on GSOC website? Drive link to Proposal: https://docs.google.com/document/d/1-jYwwDWsHQwMaxVsHFBrJ9EiCAev7lj TDLS1xMwvK5w/edit Regards, Hrishikesh On Wed, Mar 14, 2018 at 8:28 PM, Richard Biener wrote: > On Tue, Mar 13, 2018 at 5:30 AM, Hrishikesh Kulkarni > wrote: > > Hi, > > > > Thanks. I have tried to incorporate suggestions and prepared a revised > draft > > of proposal for GSOC. Please find the same attached herewith. Your > > suggestions in regard with this draft would definitely help me to > improve it > > further for submission. > > Thanks, it looks very good now. You have essentially duplicated items > in 1. and 2., namely --summary= and Dumping of IPA summaries. > I would move some of the 1. items over to 2., apart from --summary I'd also > move --cgraph-dot. > > Richard. > > > > > Drive link to Draft Proposal: > > > > https://docs.google.com/document/d/1-jYwwDWsHQwMaxVsHFBrJ9EiCAev7lj > TDLS1xMwvK5w/edit > > > > > > Regards, > > > > Hrishikesh > > > > > > > > > > On Mon, Mar 12, 2018 at 4:45 PM, Richard Biener < > richard.guent...@gmail.com> > > wrote: > >> > >> On Sun, Mar 11, 2018 at 8:23 PM, Hrishikesh Kulkarni > >> wrote: > >> > Hi, > >> > > >> > Greetings! Please find my draft proposal for GSOC attached herewith. I > >> > am > >> > very grateful to all of you for your inputs, suggestions and > directions. > >> > I > >> > have tried to assimilate these inputs received from you to convert it > >> > into a > >> > proposal. Your suggestions in regard with this draft would definitely > >> > help > >> > me to convert it into final proposal for submission. In addition, > could > >> > you > >> > please suggest the possible extensions those can be added to dump > tool? > >> > > >> > > >> > Drive link to Draft Proposal: > >> > > >> > > >> > https://docs.google.com/document/d/1-jYwwDWsHQwMaxVsHFBrJ9EiCAev7lj > TDLS1xMwvK5w/edit > >> > >> The proposal looks a bit sparse when giving details about the actual > >> project. > >> I'd suggest to clarify at least the deliverables. I suggest for 1. add > a > >> 1 c) > >> that specifies what should be working, for example > >> > >> lto-dump -l > >> > >> should dump a list of variables and functions contained in the IL > >> > >> lto-sump -s > >> > >> should dump detailed info about the symbol (using the symtab dump > >> infrastructure) > >> > >> lto-dump -f > >> > >> should dump the function body of the function with (using the > gimple > >> dump infrastructure) > >> > >> the lto-dump tool should be verified to work on both WPA-time and > >> LTRANS-time > >> objects. > >> > >> Thus your 2) a) should be possible with 1) already. 2) would then > contain > >> dumping of IPA summaries as major part apart from visualizing the > >> callgraph. > >> For visualizing the (full) callgraph you need to handle multiple LTO > >> IL input files. > >> Those two pieces should be enough for 2) unless usability issues spill > >> over > >> from 1). > >> > >> In the introduction I miss some general words about the LTO IL, like > that > >> it > >> is non-self-describing bytecode which is documented only by the code > >> reading/writing it and thus hard to debug. It also misses to lay out > the > >> overall structure of a LTO IL file (you are already going into detail > with > >> IPA passes so this missing stands out). > >> > >> Richard. > >> > >> > > >> > Regards, > >> > > >> > Hrishikesh > >> > > >> > > >> > > >> > On Tue, Mar 6, 2018 at 8:59 PM, Jan Hubicka wrote: > >> >> > >> >> > On Tue, Mar 6, 2018 at 4:02 PM, Jan Hubicka > wrote: > >> >> > >> On Tue, Mar 6, 2018 at 2:30 PM, Hrishikesh Kulkarni > >> >> > >> wrote: > >> >> > >> > Hi, > >> >> > >> > > >> >> > >> > Thank you Richard and Honza for the suggestions. If I > understand > >> >> > >> > correctly, > >> >> > >> > the issue is that LTO file format keeps changing per compiler > >> >> > >> > versions, so > >> >> > >> > we need a more “stable” representation and the first step for > >> >> > >> > that > >> >> > >> > would be > >> >> > >> > to “stabilize” representations for lto-cgraph and symbol > table ? > >> >> > >> > >> >> > >> Yes. Note the issue is that the current format is a 1:1 > >> >> > >> representation of > >> >> > >> the internal representation -- which means it is the internal > >> >> > >> representation > >> >> > >> that changes frequently across releases. I'm not sure how Honza > >> >> > >> wants > >> >> > >> to deal with those changes in the context of a "stable" IL > format. > >> >> > >> Given > >> >> > >> we haven't been able to provide a stable API to plugins I think > >> >> > >> it's > >> >> > >> much > >> >> > >> harder to provide a stable streaming format for all the IL > >> >> > >> details > >> >> > >> > >> >> > >> > Could you > >> >> > >> > please elaborate on what initial steps need to be taken in > this > >> >> > >> > regard, and > >
gcc-6-20180314 is now available
Snapshot gcc-6-20180314 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/6-20180314/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 6 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-6-branch revision 258537 You'll find: gcc-6-20180314.tar.xzComplete GCC SHA256=20dbf9f029b16e4420920b44b81da760fd624c5295f88ff1b3193518fdc8ae1c SHA1=cb6e0ffa83d99696dbe49a698fe19293d7b3cdf4 Diffs from 6-20180307 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-6 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.
GSoC
I had a query, while choosing project for GSoC. Actually I'm contributing to GCC for the first time, and I am not sure about what is expected of me. So, can you please explain me about , what GCC organisation expects me to do, like detect bugs, or add a new feature ,etc.?