<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"\@DengXian";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
code
{mso-style-priority:99;
font-family:"Courier New";}
span.EmailStyle20
{mso-style-type:personal-compose;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:274559992;
mso-list-template-ids:-1551598550;}
@list l1
{mso-list-id:313219873;
mso-list-template-ids:-1395093400;}
@list l2
{mso-list-id:318651905;
mso-list-template-ids:-485696078;}
@list l3
{mso-list-id:778719187;
mso-list-template-ids:238839414;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l4
{mso-list-id:964972358;
mso-list-template-ids:198458708;}
@list l4:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l5
{mso-list-id:1018965182;
mso-list-template-ids:1567388786;}
@list l5:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6
{mso-list-id:1292244236;
mso-list-template-ids:717024522;}
@list l6:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7
{mso-list-id:1334646164;
mso-list-template-ids:569693752;}
@list l8
{mso-list-id:1526476420;
mso-list-template-ids:-1844834144;}
@list l8:level1
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level3
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level4
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level6
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level7
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l8:level9
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l7:level1 lfo5
{mso-level-start-at:2;}
@list l1:level1 lfo7
{mso-level-start-at:3;}
@list l4:level1 lfo8
{mso-level-start-at:4;}
@list l0:level1 lfo10
{mso-level-start-at:5;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p style="margin:0in;margin-bottom:.0001pt">Hi flang-dev<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">On Monday March 16th, F18 is scheduled to become part of LLVM and the existing F18 repository will be frozen. This email aims to prepare you for this event.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">What will happen on the day?<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">On Monday 16th (the exact time is still TBC) the following will happen:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l5 level1 lfo1;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>F18 will be closed to new commits and new pull requests<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l5 level1 lfo1;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Any open F18 pull requests will be closed<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l5 level1 lfo1;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>F18's github Issues will remain open and will remain the right place to open F18 issues. This is a short-term measure while we arrange for them to migrate to LLVM processes<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l5 level1 lfo1;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>F18 project boards will remain live to track ongoing work. This is also a short-term measure while we arrange for them to migrate elsewhere.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">How do I work on F18 going forward?<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l6 level1 lfo2;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>F18's new home will be in a directory called "flang" at
<a href="https://github.com/llvm/llvm-project">https://github.com/llvm/llvm-project</a><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l6 level1 lfo2;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>The build instructions will change - see [1] for more information.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l6 level1 lfo2;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>The LLVM project does not accept github pull requests. In order to submit a patch for code review you need to use the phabricator instance at
<a href="https://reviews.llvm.org/">https://reviews.llvm.org/</a>. See [2] for details.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l6 level1 lfo2;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>In order to commit an approved code review you will need to get commit access to the repository - see [3] for instructions.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">What should I do now?<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">In this last week before merging I suggest that you:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l3 level1 lfo3;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Prioritise finishing off any last PRs that are close to being accepted.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l3 level1 lfo3;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Read the LLVM Developer policy <a href="https://llvm.org/docs/DeveloperPolicy.html">
https://llvm.org/docs/DeveloperPolicy.html</a>.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l3 level1 lfo3;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Set up an account on phabricator and set up arcanist (if you like) [2]<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l3 level1 lfo3;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>If you have downstream builds, get a head start on porting them to the new build setup.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">If there are any questions then please feel free to ask on flang-dev as there are a few llvm-dev veterans on the list who can probably answer.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Thanks<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Rich<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">[1] New build instructions for F18<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">The way to build F18 will change slightly once it is inside the LLVM project. The general instructions for building LLVM are at
<a href="https://github.com/llvm/llvm-project#getting-the-source-code-and-building-llvm">
https://github.com/llvm/llvm-project#getting-the-source-code-and-building-llvm</a>. F18 will be enabled in an LLVM build by passing
<span style="font-family:Consolas">-DLLVM_ENABLE_PROJECTS="mlir;flang" </span>to cmake. The build instructions for F18 will be updated accordingly. These are currently at
<a href="https://github.com/flang-compiler/f18#building-f18">https://github.com/flang-compiler/f18#building-f18</a>. They will be moved to an equivalent location at llvm-project/flang/README.md.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">If you want to get a head start on this build setup then you can mimic today with these steps.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l2 level1 lfo4;vertical-align:middle">
<![if !supportLists]><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Clone the llvm-project git repo<o:p></o:p></p>
<p><code><span style="font-family:Consolas">git clone <a href="https://github.com/llvm/llvm-project.git">
https://github.com/llvm/llvm-project.git</a></span></code><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l7 level1 lfo5;vertical-align:middle">
<![if !supportLists]><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Clone F18 inside llvm-project as "flang"<o:p></o:p></p>
<p><code><span style="font-family:Consolas">cd llvm-project</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">git clone <a href="https://github.com/llvm/llvm-project.git">
https://github.com/</a>flang-compiler/f18.git flang</span></code><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l8 level1 lfo6;vertical-align:middle">
<![if !supportLists]><span style="font-size:10.0pt;font-family:"Courier New""><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>It helps to teach llvm-project to ignore that flag is a separate clone<o:p></o:p></p>
<p><code><span style="font-family:Consolas">echo "# flang (pre-merge)" >> .gitignore</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">echo "flang" >> .gitignore</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">git commit -a -m "Ignore flang repo"</span></code><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l1 level1 lfo7;vertical-align:middle">
<![if !supportLists]><span style="mso-list:Ignore">3.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Apply the F18 patch for the new cmake setup <a href="https://github.com/flang-compiler/f18/pull/1045">
https://github.com/flang-compiler/f18/pull/1045</a> (unless it has already been merged, in which case you can skip this step)<o:p></o:p></p>
<p><code><span style="font-family:Consolas">cd flang</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">git fetch origin pull/1045/head:pr-1045</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">git checkout pr-1045</span></code><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l4 level1 lfo8;vertical-align:middle">
<![if !supportLists]><span style="mso-list:Ignore">4.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Apply the patch to add flang as a project to LLVM: <a href="https://reviews.llvm.org/D72416">
https://reviews.llvm.org/D72416</a><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l4 level2 lfo9;vertical-align:middle">
<![if !supportLists]><span style="mso-list:Ignore">a.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>If you have set up your phabricator account and arcanist [2] then you can do<o:p></o:p></p>
<p><code><span style="font-family:Consolas">cd ..</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">arc patch D72416</span></code><o:p></o:p></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.75in;margin-bottom:.0001pt">
If you have not done this, then the patch can be manually downloaded from the web UI or you could just apply it by hand as it very small.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:27.0pt;text-indent:-.25in;mso-list:l0 level1 lfo10;vertical-align:middle">
<![if !supportLists]><span style="mso-list:Ignore">5.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Build LLVM with -DLLVM_ENABLE_PROJECTS="mlir;flang" -DLLVM_EXTERNAL_PROJECTS=flang added to the usual options<o:p></o:p></p>
<p><code><span style="font-family:Consolas">mkdir build && cd build</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">cmake -DLLVM_ENABLE_PROJECTS="mlir;flang" -DLLVM_EXTERNAL_PROJECTS=flang -DCMAKE_INSTALL_PREFIX=`pwd`/../install -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_BUILD_TYPE=Release ../llvm</span></code><o:p></o:p></p>
<p><code><span style="font-family:Consolas">make -j64</span></code><o:p></o:p></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:27.0pt;margin-bottom:.0001pt">
Note: after F18 is merged to the monorepo -DLLVM_EXTERNAL_PROJECTS will not need to be set.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">There should be no other changes in build-time tool requirements from when building F18 as part of the F18 project.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">[2] Code review in LLVM<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">LLVM strongly encourages open, pre-commit code review on all changes. More information is here:
<a href="https://llvm.org/docs/DeveloperPolicy.html#code-reviews">https://llvm.org/docs/DeveloperPolicy.html#code-reviews</a> and
<a href="https://llvm.org/docs/CodeReview.html">https://llvm.org/docs/CodeReview.html</a><o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"><a href="https://llvm.org/docs/Contributing.html#how-to-submit-a-patch">https://llvm.org/docs/Contributing.html#how-to-submit-a-patch</a> explains how to submit a patch to LLVM for code review.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">As with F18, large or controversial changes require a prior RFC to be circulated. We will use flang-dev (this list) for these as usual.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Technically speaking, it is possible to get a code review by emailing a patch to the commits list, in our case flang-commits@lists.llvm.org however the vast majority of patches are reviewed in Phabricator so this
is the preferred route. You will find it easier to attract the attention of potential reviewers in this tool.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Phabricator requires you to create an account - see
<a href="https://llvm.org/docs/Phabricator.html#sign-up">https://llvm.org/docs/Phabricator.html#sign-up</a>.
<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Phabricator reviews can be started via the web UI
<a href="https://llvm.org/docs/Phabricator.html#phabricator-request-review-web">https://llvm.org/docs/Phabricator.html#phabricator-request-review-web</a> or there is a command line tool called arcanist- see
<a href="https://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-command-line">
https://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-command-line</a>.
<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">If committing via the Web UI a common mistake is to make a patch with not enough context. Remember to use the
<span style="font-family:Consolas">-U999999</span> option when creating your patches.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Also when committing via the web UI you need to remember to add the "Differential Revision: <URL>" line as the last line of the commit message yourself. If you use arcanist it will do this for you. Doing this will
close the Phabricator review automatically saving you going back to the UI to do this. See also
<a href="https://llvm.org/docs/Phabricator.html#committing-a-change">https://llvm.org/docs/Phabricator.html#committing-a-change</a><o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">As with F18, Code review is open in LLVM and all developers are invited to review. The interface is similar to github. There is an RFC on the llvm-dev list about moving to github PRs but such a move will be take time.
When we are a part of the community, we can lend our voice to the debate.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Flang will gain a CODE_OWNERS file before we merge which establishes maintainers or reviewers in chief.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">There is a tool called Herald <a href="https://secure.phabricator.com/book/phabricator/article/herald/">
https://secure.phabricator.com/book/phabricator/article/herald/</a> which you can use to get automated messages on new phab reviews in a specific area.
<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">For those used to reviewing github pull requests and who pull in changes to their local clone to play around with, the arcanist tool is the way to go. Once set up you can pull a patch down from Phabricator to a local
branch using: <o:p></o:p></p>
<p><code><span style="font-family:Consolas">arc patch D<number></span></code><o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">[3] Submitting a patch<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">Once your patch has been code reviewed and approved you need to commit to
<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"><a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a>. If you don't have commit access, it is generally ok to ask someone (probably your reviewer) to submit it on your behalf.
We are arranging for all regular F18 contributors to have commit access established before the merge happens.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">To get commit access you follow the process here:
<a href="https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access">https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access</a>.
<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">See also <a href="https://llvm.org/docs/DeveloperPolicy.html#making-and-submitting-a-patch">
https://llvm.org/docs/DeveloperPolicy.html#making-and-submitting-a-patch</a> for more information.<o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt">One aspect to be aware of are the LLVM buildbots running at
<a href="http://lab.llvm.org:8011/console">http://lab.llvm.org:8011/console</a>. If any commit regresses a stable builder it is standard for the maintainer or another community member to revert the patch to restore the builder to green before further investigation
can take place on the real fix. This is a normal event and it is then the responsibility of the original committer to adapt the commit so that it can be resubmitted in a way that passes the buildbot. F18 will not be a default target for LLVM when we first
land, so it is unlikely that any commits in the early days will cause a buildbot failure. We will add buildbots after we land in the monorepo.<o:p></o:p></p>
<div>
<p style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p style="margin:0in;margin-bottom:.0001pt"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#969696">Created with Microsoft OneNote 2016.<o:p></o:p></span></p>
</div>
</div>
</body>
</html>