[cfe-dev] GSoc Proposal
Richard Smith via cfe-dev
cfe-dev at lists.llvm.org
Wed Apr 6 14:47:29 PDT 2016
This seems like a great project. Just a couple of concerns: who will
provide hosting infrastructure for this buildbot, and who will maintain it
once the project ends?
On Tue, Mar 22, 2016 at 1:58 AM, Bianca-Cristina Cristescu via cfe-dev <
cfe-dev at lists.llvm.org> wrote:
> Enabling llvm’s self-hosted modules builds using libstdc++
>
> Bianca-Cristina Cristescu, MSc Computer Science, ETH Zurich
>
> Problem description
>
> Nowadays, the software projects are growing in size and functionality, and
> in order to avoid reinventing the wheel they use many software libraries.
> Including libraries adds complexity and can cause fragility, problems with
> compile-time scalability and tool confusion [1].
>
> Clang [2] is a C, C++, Objective C and Objective C++ front-end for the
> LLVM [3] compiler. To solve the above mentioned issues LLVM and Clang
> propose to use Modules [1] as an alternative to include libraries. Modules
> give a access to the API of the software libraries using a more efficient
> semantic model [1].
>
> A buildbot [4] for building llvm with modules exists when using libc++
> (usually available by default on MacOS), but there is no support to using
> modules when having libstdc++. Given that a large amount of software
> projects are developed on Unix operating systems, the necessity of modules
> to support libstdc++ emerges. The problem is that there is a different
> merging model for the modules when using libstdc++ compared to libc++ given
> by the fact that libc++ has a module aware implementation whereas libstdc++
> does not.
>
> The project aims to enable the building of llvm’s self-hosted modules
> using libstdc++ by reporting issues, submitting bug reports, proposing
> fixes and creating a buildbot.
>
>
> Deliverables
>
> -
>
> A buildbot to build llvm using libstdc++.
> -
>
> Bug reports submitted to the LLVM Bug Tracking System [5] for the
> encountered issues.
> -
>
> Minimalistic reproducers for the bugs in the order of priority.
> -
>
> Fixes of the bugs which I can fix with my experience.
>
>
> Timeline
>
> 22nd April - 22nd May (Before the official coding time)
>
> -
>
> Background literature on modules;
> -
>
> Familiarization with the architecture of the modules;
> -
>
> Update on the current state of the modules.
>
>
> 23rd May - 29th May (Official coding time starts)
>
> -
>
> Set up the working environment and check synchronisation with the
> clang/llvm community.
>
>
> 30th May - 12th June
>
> -
>
> Attempt to build llvm with modules.
> -
>
> Create a report of the existing issues at the time of the build with
> the current version of clang and llvm.
>
>
> 13th June - 26th June
>
> -
>
> In the order of the priority list previously created reduce the issues
> to minimalistic examples.
> -
>
> Possibly use tools such as C-reduce [6] to help and accelerate the
> minimization of the reproducers.
> -
>
> File bug reports for the minimised issues to clang.
> -
>
> Provide fixes for the trivial issues (such as missing includes)
> encountered in the process.
>
>
> 27th June - 17th July (Midterm evaluation)
>
> -
>
> Prioritise the existing issues in close contact with the clang/llvm
> community.
> -
>
> Propose fixes for a feasible amount of the reported issues.
> -
>
> Provide the fixes in patches on Phabricator for review by the
> clang/llvm community.
>
>
> 18th July - 7th of August
>
> -
>
> Implement a buildbot in which clang builds llvm using modules.
>
>
> 8th August - 23rd of August Week 12
>
> -
>
> Review and evaluate results.
> -
>
> Buffer time for unpredictable delay.
>
>
>
> Background
>
> -
>
> Bachelors in Computer Science from The University of Manchester
> -
>
> Improved my C++ knowledge by working on ROOT’s [7] interpreter, Cling
> which is built on top of Clang and LLVM.
> -
>
> Isolated and submitted minimal issue reproducers for Clang Modules in
> 2014. For instance: https://llvm.org/bugs/show_bug.cgi?id=20475
>
> https://llvm.org/bugs/show_bug.cgi?id=20674
>
> https://llvm.org/bugs/show_bug.cgi?id=20399
>
> -
>
> Enrolled in a Computer Science MSc at ETH Zurich.
>
>
> References
>
> [1] Modules, http://clang.llvm.org/docs/Modules.html
>
> [2] Clang, http://clang.llvm.org/
>
> [3] LLVM, http://llvm.org/
>
> [4] Buildbot,
> http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules
>
> [5] LLVM Bug Tracking System, http://llvm.org/bugs/enter_bug.cgi
>
> [6] C-reduce, https://embed.cs.utah.edu/creduce/
>
> [7] ROOT, https://root.cern.ch/
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160406/21005cb3/attachment.html>
More information about the cfe-dev
mailing list