<div dir="auto">Hi Shiwei,</div><div dir="auto"><br></div><div dir="auto">Let me try to draw up a more visual representation do the current pipelines over the weekend. That might also explain why I think the subset might work as the intermediate steps *do* carry register width.</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto"> Moritz</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 8 Jun 2023 at 2:44 PM, 卢诗炜 <<a href="mailto:shiwei.lu@compiler-dev.com">shiwei.lu@compiler-dev.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div>
<div style="font-family:Carlibri;font-size:16px">Moritz,</div><div style="font-family:Carlibri;font-size:16px"><br></div><div><span style="font-size:16px;font-family:Carlibri">Thank you for your detailed response. However, we think that RV32 is not a subset of RV64, and that the instruction selection logic for RV32 and RV64 may differ. Because RV32 and RV64 have different register widths, it is sometimes necessary to use different instructions than RV64 to ensure correct results.  </span><br></div><div><br></div><div style="font-family:Carlibri;font-size:16px"><span style="font-family:Carlibri;font-size:16px">We plan to support RV32 in Native Code Generation. And we may draw inspiration from your support for RV64. </span><span style="font-family:Carlibri"> We do want to be able to support</span><span style="font-family:Carlibri;font-size:16px"> <span style="font-family:Carlibri;color:rgb(31,31,31)">RV32I+MAF, also include C extensions.</span></span></div><div style="font-family:Carlibri;font-size:16px"><span style="font-family:Carlibri;font-size:16px"><span style="font-family:Carlibri;color:rgb(31,31,31)"><br></span></span></div><div style="font-family:Carlibri;font-size:16px"><p style="font-family:Carlibri">Do you have any comments or suggestions?</p><p style="font-family:Carlibri">Thank you so much for your answer and help!</p><p style="font-family:Carlibri"></p><div style="font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px">Best regards,<br></span></div><div style="font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px">  Shiwei</span></div>  <br><p style="font-family:Carlibri"></p>  <br></div><div style="font-family:Carlibri;font-size:16px"><br></div><div>    <div style="font-family:PingFang,"Source Han Sans",sans-serif">                <a id="m_-5808623417921428133lingxi-signature-block" style="display:block;width:100%;text-decoration:none;font-family:PingFang,"Source Han Sans",sans-serif" href="https://lingxi.office.163.com/static_html/signature.html?id=69484630301586661&show=" target="_blank">            <div style="border-radius:50%;font-family:PingFang,"Source Han Sans",sans-serif">                <img src="https://cowork-storage-public-cdn.lx.netease.com/sign/2022/10/27/6074b5deabc74de180aa569fb94bf6eb.png" style="border-radius: 50%; object-fit: cover; width: 40px; height: 40px; font-family: PingFang, "Source Han Sans", sans-serif;" width="40px" height="40px">                            </div>            <div id="m_-5808623417921428133lingxi-signature-content" style="border-bottom-width:1px;border-bottom-style:solid;font-size:14px;line-height:16px;padding:16px 16px 4px 0px;margin-left:52px;word-break:break-all;font-family:PingFang,"Source Han Sans",sans-serif;border-bottom-color:rgb(225,230,237);color:rgb(122,133,153)">                <div style="border:medium;margin-bottom:4px;font-size:16px;line-height:17px;height:17px;font-weight:bolder;overflow:hidden;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(35,45,71)">卢诗炜</div>                                                                            <div style="border:medium;margin-bottom:8px;font-family:PingFang,"Source Han Sans",sans-serif">shiwei.lu@compiler-dev.com</div>                                                                                        </div>        </a>                                <div style="padding-left:52px;font-size:12px;margin-top:12px;padding-bottom:14px;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(122,133,153)">            签名由            <a href="https://hubble.netease.com/sl/aaagLd" style="display:inline-block;text-decoration:none;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(76,106,255)" target="_blank">网易灵犀办公</a>            定制        </div>    </div></div><div></div><div><div style="font-family:Carlibri;font-size:16px"><br></div><div style="font-family:Carlibri;font-size:16px"><br></div><div style="font-family:Carlibri;font-size:16px"><br></div><blockquote id="m_-5808623417921428133isReplyContent" style="padding-left:1ex;border-left-width:1px;border-left-style:solid;margin:0px;border-left-color:rgb(204,204,204)"><div style="color:rgb(125,128,133)">Original:</div><ul style="font-size:12px;padding-left:20px;color:rgb(125,128,133)"><li>From:moritz.angermann<<a href="mailto:moritz.angermann@gmail.com" target="_blank">moritz.angermann@gmail.com</a>></li><li>Date:2023-06-08 09:59:38(中国(GMT+08:00))</li></ul></blockquote></div></div><div><div><blockquote id="m_-5808623417921428133isReplyContent" style="padding-left:1ex;border-left-width:1px;border-left-style:solid;margin:0px;border-left-color:rgb(204,204,204)"><ul style="font-size:12px;padding-left:20px;color:rgb(125,128,133)"><li>To:卢诗炜<<a href="mailto:shiwei.lu@compiler-dev.com" target="_blank">shiwei.lu@compiler-dev.com</a>></li><li>Cc:</li><li>Subject:Re: Inquiry about Supporting RISC-V 32 in Haskell</li></ul></blockquote></div></div><div><div><blockquote id="m_-5808623417921428133isReplyContent" style="padding-left:1ex;border-left-width:1px;border-left-style:solid;margin:0px;border-left-color:rgb(204,204,204)"><ul style="font-size:12px;padding-left:20px;color:rgb(125,128,133)"></ul></blockquote></div></div><div><div><blockquote id="m_-5808623417921428133isReplyContent" style="padding-left:1ex;border-left-width:1px;border-left-style:solid;margin:0px;border-left-color:rgb(204,204,204)"><div dir="ltr"><h3 style="overflow:hidden;white-space:nowrap;font-size:0.75rem;margin:inherit;text-overflow:ellipsis;font-family:"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif;line-height:20px;color:rgb(95,99,104)"><span role="gridcell" style="outline:currentcolor;font-family:"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif"><span name="卢诗炜" style="font-size:0.875rem;display:inline;vertical-align:top;line-height:20px;font-family:"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif;color:rgb(31,31,31)"><span style="vertical-align:top;font-weight:normal;font-family:"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif">诗炜,</span></span></span></h3><div><span role="gridcell" style="outline:currentcolor"><span name="卢诗炜" style="font-size:0.875rem;display:inline;vertical-align:top;line-height:20px;color:rgb(31,31,31)"><span style="vertical-align:top;font-weight:normal"><br></span></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">This is a bit hard to answer. As GHC is a fairly distributed open source project, everyone can effectively just contribute (by </span>opening<span style="font-size:14px"> a Merge Request on <a href="http://gitlab.haskell.org/ghc" target="_blank">gitlab.haskell.org/ghc</a>), and then the discussion around it will start. There is no fixed plan as to what ends up in e.g. GHC 9.8 (merge window will close June 16th), or even what GHC 9.10 will look like or when it will be release (likely the merge window will close mid December).</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">GHC has various ways to generate code:</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">- Via a C backend (compile Haskell to C, use a C compiler to compile to machine code). This backend is quite slow (compile time, and runtime)</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">- Via LLVM (comile Haskell to LLVM textual IR, then use LLVM's `opt` and `llc` to compile it to machine code). This backend produces good performing code, but is very slow to compile.</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">- Via Native Code Generation (this turns Haskell into assembly, and then uses usually the CC compiler to just turn .S into .o). This has good compile time performance, and often competitive runtime performance. However this lacks for all supposed architectures proper SIMD support.</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">The LLVM backend can _in theory_ compile to any LLVM supported target. (The LLVM RV64 backend in GHC is that effectively). The Native Code Generator (NCG), support x86_64, i686, aarch64, and soon rv64. There are also powerpc, sparc and mips NCG backends, however the state of most cross compilation targets are only on a best effort basis and are not tested in CI. Since GHC 9.2 there are also JavaScript and WASM backends in GHC.</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">If you just want to cross compile for RV32, going down the LLVM route might be the easiest. </span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">_my_ current plans are to work on </span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">- The RV64 NCG</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">- The linker/loader for ELF/RV64</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">- aarch32 NCG</span></span></div><div><br></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">For RV32, we are in the lucky position that the instruction set is effectively just a subset of the RV64 instruction set. So we might be able to request some of the RV64 backend, or even better make the RV64 backend a superset of the RV32 backend. </span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">I assume you are looking to support RV32I+MAF?</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">Happy to help with any follow up questions.</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"><br></span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px">Cheers,</span></span></div><div><span style="color:rgb(31,31,31)"><span style="font-size:14px"> Moritz</span></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 8 Jun 2023 at 08:38, 卢诗炜 <<a href="mailto:shiwei.lu@compiler-dev.com" target="_blank">shiwei.lu@compiler-dev.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div>
<div style="font-family:Carlibri;font-size:16px"><p style="box-sizing:border-box;margin:0px 0px 2px;padding:0px;line-height:21px;display:inline;font-style:normal;font-weight:400;font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px">Thank you for your prompt reply. We have seen the support for your team working for RV64 in the GHC. You've done a great job.</span></p><p style="box-sizing:border-box;margin:0px 0px 2px;padding:0px;line-height:21px;display:inline;font-style:normal;font-weight:400;font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px"><br></span></p><p style="box-sizing:border-box;margin:0px 0px 2px;padding:0px;line-height:21px;display:inline;font-style:normal;font-weight:400;font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px"><br></span></p><p style="font-family:Carlibri"></p><div style="font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px"><span style="font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-line;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline;font-family:Carlibri;background-color:rgb(255,255,255);color:rgb(42,43,46)">We'd like to do what your team does for GHC by supporting new compile backends, like RV32, to contribute to the community. </span></span>We are more focused on  _cross compilation_  from x86_64 to RV32 on Linux. But we dont know much about GHC's current dynamics and plans, whether there is a need for this or whether support is being provided.  </div></div><div style="font-family:Carlibri;font-size:16px"><br></div><div><span style="font-family:Carlibri;font-size:16px">Do we need to support</span><span style="font-family:Carlibri;font-size:16px"> </span><span style="font-family:Carlibri;font-size:16px">RV32</span><span style="font-family:Carlibri;font-size:16px"> for</span><span style="font-family:Carlibri;font-size:16px"> </span><span style="font-family:Carlibri;font-size:16px">GHC</span><span style="font-family:Carlibri;font-size:16px">?</span><span style="font-family:Carlibri;font-size:16px"> Or is there anything else you think we can contribute to?</span><span style="font-family:Carlibri;font-size:16px"> </span></div><div><span style="font-family:Carlibri;font-size:16px"><br></span></div><div><span style="font-family:Carlibri;font-size:16px">Looking forward to your reply, Thanks!</span></div><div><span style="font-family:Carlibri;font-size:16px"><br></span></div><div><span style="font-family:Carlibri;font-size:16px">Best regards,<br></span></div><div><span style="font-family:Carlibri;font-size:16px">  Shiwei</span></div><div style="font-family:Carlibri;font-size:16px"><br></div><div style="font-family:Carlibri;font-size:16px"><br></div><div>    <div style="font-family:PingFang,"Source Han Sans",sans-serif">                <a id="m_-5808623417921428133m_2495041850122522696lingxi-signature-block" style="display:block;width:100%;text-decoration:none;font-family:PingFang,"Source Han Sans",sans-serif" href="https://lingxi.office.163.com/static_html/signature.html?id=69484630301586661&show=" target="_blank">            <div style="border-radius:50%;font-family:PingFang,"Source Han Sans",sans-serif">                <img src="https://cowork-storage-public-cdn.lx.netease.com/sign/2022/10/27/6074b5deabc74de180aa569fb94bf6eb.png" style="border-radius: 50%; object-fit: cover; width: 40px; height: 40px; font-family: PingFang, "Source Han Sans", sans-serif;" width="40px" height="40px">                            </div>            <div id="m_-5808623417921428133m_2495041850122522696lingxi-signature-content" style="border-bottom-width:1px;border-bottom-style:solid;font-size:14px;line-height:16px;padding:16px 16px 4px 0px;margin-left:52px;word-break:break-all;font-family:PingFang,"Source Han Sans",sans-serif;border-bottom-color:rgb(225,230,237);color:rgb(122,133,153)">                <div style="border:medium;margin-bottom:4px;font-size:16px;line-height:17px;height:17px;font-weight:bolder;overflow:hidden;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(35,45,71)">卢诗炜</div>                                                                            <div style="border:medium;margin-bottom:8px;font-family:PingFang,"Source Han Sans",sans-serif">shiwei.lu@compiler-dev.com</div>                                                                                        </div>        </a>                                <div style="padding-left:52px;font-size:12px;margin-top:12px;padding-bottom:14px;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(122,133,153)">            签名由            <a href="https://hubble.netease.com/sl/aaagLd" style="display:inline-block;text-decoration:none;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(76,106,255)" target="_blank">网易灵犀办公</a>            定制        </div>    </div></div><div></div><div><div style="font-family:Carlibri;font-size:16px"><br></div><div style="font-family:Carlibri;font-size:16px"><br></div><div style="font-family:Carlibri;font-size:16px"><br></div><blockquote id="m_-5808623417921428133m_2495041850122522696isReplyContent" style="padding-left:1ex;border-left-width:1px;border-left-style:solid;margin:0px;border-left-color:rgb(204,204,204)"><div style="color:rgb(125,128,133)">Original:</div><ul style="font-size:12px;padding-left:20px;color:rgb(125,128,133)"><li>From:moritz.angermann<<a href="mailto:moritz.angermann@gmail.com" target="_blank">moritz.angermann@gmail.com</a>></li><li>Date:2023-06-07 19:45:32</li><li>To:卢诗炜<<a href="mailto:shiwei.lu@compiler-dev.com" target="_blank">shiwei.lu@compiler-dev.com</a>></li><li>Cc:</li><li>Subject:Re: Inquiry about Supporting RISC-V 32 in Haskell</li></ul><div dir="ltr">您好诗炜!<div>对不起,我的中文不很好。写英语。</div><div>I assume you've found my email from the ghc source repo? Yes, I have extensive experience adding compiler backends to GHC, including GHC's internal static linker.</div><div>Recently a friend and I have started working on RV64 support in GHC (See <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10367" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10367</a>). So we have some prior experience</div><div>with RISC-V.</div><div><br></div><div>I understand you want to have support for RV32 in ghc? Are you looking for _native_ RV32 support GHC the compiler running natively on RISC-V 32 hardware? Or are you</div><div>primarily interested in _cross compilation_ to RV32 from e.g. RV64, x86_64, aarch64?</div><div><br></div><div>Also which platform are you interested in? Linux?</div><div><br></div><div>Happy to provide more concrete feedback based on your exact requirements and vision. Ultimately GHC is a community project and everyone can contribute. I can certainly</div><div>provide guidance and assistance here.</div><div><br></div><div>Cheers,</div><div> Moritz</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 7 Jun 2023 at 18:16, 卢诗炜 <<a href="mailto:shiwei.lu@compiler-dev.com" target="_blank">shiwei.lu@compiler-dev.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div>
<div style="font-family:"Source Han Sans";font-size:14px"><span style="font-family:Carlibri;font-size:16px">Dear Moritz Angermann,</span></div><div style="font-family:"Source Han Sans";font-size:14px"><span style="font-family:Carlibri;font-size:16px"><br></span></div><div style="font-family:"Source Han Sans";font-size:14px"><span style="font-family:Carlibri;font-size:16px">Hello! <span style="font-family:Carlibri;color:rgb(52,53,65)">I am writing on behalf of Hunan Compiler Technology Co., Ltd. to inquire about the possibility of supporting RISC-V 32 in Haskell o<p style="box-sizing:border-box;margin:0px 0px 2px;padding:0px;line-height:21px;display:inline;font-style:normal;font-weight:400;font-family:Carlibri"><span style="font-family:Carlibri;font-size:16px">r if you're supporting it</span></p>. We are a technology company based in China and we would like to contribute to the Haskell community by providing support for this architecture.</span></span></div><div style="font-family:"Source Han Sans";font-size:14px"><span style="font-family:Carlibri;font-size:16px"><span style="font-family:Carlibri;color:rgb(52,53,65)"><br></span></span></div><div style="font-family:"Source Han Sans";font-size:14px"><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px">As you may know, RISC-V is an open-source instruction set architecture that is gaining popularity in the industry. It is important for us to ensure that our products are compatible with this architecture, and we believe that supporting RISC-V in Haskell would be a valuable contribution to the community.</span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px"><br></span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px">We are willing to work closely with the community to understand the requirements and challenges of supporting RISC-V in Haskell. We have a team of experienced engineers who are familiar with both Haskell and RISC-V, and we are confident that we can provide high-quality support for this architecture.</span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px"><br></span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px">We would appreciate any guidance or feedback from the community on this matter. Please let us know if there are any specific requirements or challenges that we should be aware of. We look forward to working with the Haskell community to support RISC-V.</span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px"><br></span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px">Thank you for your time and consideration.</span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px"><br></span></p><p style="box-sizing:border-box;margin:0px;padding:0px;font-size:15px;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;text-decoration-style:initial;text-decoration-color:initial;color:rgb(52,53,65)"><span style="font-family:Carlibri;font-size:16px">Sincerely, Shiwei LU, Hunan Compiler Technology Co., Ltd.</span></p>  <br></div><div style="font-family:"Source Han Sans";font-size:14px"><br></div><div>    <div style="font-family:PingFang,"Source Han Sans",sans-serif">                <a id="m_-5808623417921428133m_2495041850122522696m_-422878609442124096lingxi-signature-block" style="display:block;width:100%;text-decoration:none;font-family:PingFang,"Source Han Sans",sans-serif" href="https://lingxi.office.163.com/static_html/signature.html?id=69484630301586661&show=" target="_blank">            <div style="border-radius:50%;font-family:PingFang,"Source Han Sans",sans-serif">                <img src="https://cowork-storage-public-cdn.lx.netease.com/sign/2022/10/27/6074b5deabc74de180aa569fb94bf6eb.png" style="border-radius: 50%; object-fit: cover; width: 40px; height: 40px; font-family: PingFang, "Source Han Sans", sans-serif;" width="40px" height="40px">                            </div>            <div id="m_-5808623417921428133m_2495041850122522696m_-422878609442124096lingxi-signature-content" style="border-bottom-width:1px;border-bottom-style:solid;font-size:14px;line-height:16px;padding:16px 16px 4px 0px;margin-left:52px;word-break:break-all;font-family:PingFang,"Source Han Sans",sans-serif;border-bottom-color:rgb(225,230,237);color:rgb(122,133,153)">                </div></a><div style="padding-left:22px;font-size:12px;margin-top:12px;padding-bottom:14px;font-family:PingFang,"Source Han Sans",sans-serif;color:rgb(122,133,153)"><br></div>    </div></div>
<br><br><img width="0" height="0" style="display: flex;" src="https://tr.qiye.163.com/datacapture/mailreport/v2/0a88954f0e2cb215kuuu18890ad0e90?zone=hz&to=moritz.angermann@gmail.com&tm=1686132998659&sign=7479561ea59845438ab4adbfc758feb8&from=shiwei.lu@compiler-dev.com&mid=&ack=0&toname=moritz.angermann"></div></blockquote></div>
</blockquote></div>
<br><br><img width="0" height="0" style="display: flex;" src="https://tr.qiye.163.com/datacapture/mailreport/v2/0a889858184bb215kuuu188959c5b68?zone=hz&to=moritz.angermann@gmail.com&tm=1686184719657&sign=85407c6b642605baf03d4d7fa20be9d2&from=shiwei.lu@compiler-dev.com&mid=&ack=0&toname=moritz.angermann"></div></blockquote></div>
</blockquote></div></div><div><div><blockquote id="m_-5808623417921428133isReplyContent" style="padding-left:1ex;border-left-width:1px;border-left-style:solid;margin:0px;border-left-color:rgb(204,204,204)"></blockquote></div>
<br><br><img width="0" height="0" style="display: flex;" src="https://tr.qiye.163.com/datacapture/mailreport/v2/0a8899aee72ab215kuuu188959c9819?zone=hz&to=moritz.angermann@gmail.com&tm=1686206643663&sign=433054ebfd8a05ba11430f6f50af46d1&from=shiwei.lu@compiler-dev.com&mid=&ack=0&toname=moritz.angermann"></div></blockquote></div></div>