<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Dec 19, 2015 at 6:53 PM, Chaitanya Mannem via swift-users <span dir="ltr">&lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Hi,</div><div></div><div><blockquote type="cite" style="font-family:SFNSText,&#39;Helvetica Neue&#39;,Helvetica,sans-serif"><div><div></div></div></blockquote></div><div><br></div><div><span style="font-family:SFNSText,&#39;Helvetica Neue&#39;,Helvetica,sans-serif">I wanted to know if it is possible to compile swift code for bare metal. I know there is a runtime but does swift depend on it to execute even if I don&#39;t use those features?, can I disable them somehow. I was hoping that since you can produce LLVM Bytecode that you can cross compile using the arm-none-eabi toolchain for an embedded use-case (</span><a href="http://www.ti.com/tool/ek-tm4c123gxl)" style="font-family:SFNSText,&#39;Helvetica Neue&#39;,Helvetica,sans-serif" target="_blank">http://www.ti.com/tool/ek-tm4c123gxl)</a><span style="font-family:SFNSText,&#39;Helvetica Neue&#39;,Helvetica,sans-serif">. Please tell me there&#39;s hope, I don&#39;t want to use C++  :(</span></div></div></blockquote><div><br></div><div>It is a goal of Swift to be a systems programming language, but nobody has yet compiled a program using Swift for a bare-metal target, so a significant amount of work would be required.</div><div><br></div><div>The Swift runtime is required to support basic features such as object allocation, casts and generics, so you can&#39;t just omit it.</div><div><br></div><div>Regarding the microcontroller that you referenced, I think it would be an overly ambitious goal to try to make everything work with 256 Kb of flash and 32 Kb of RAM.  I would recommend to start with a more powerful bare-metal target, and get things working without an OS and memory protection, measure RAM and flash consumption, and try to fit everything into a smaller MCU.</div><div><br></div><div>Dmitri </div></div><div><br></div>-- <br><div class="gmail_signature">main(i,j){for(i=2;;i++){for(j=2;j&lt;i;j++){if(!(i%j)){j=0;break;}}if<br>(j){printf(&quot;%d\n&quot;,i);}}} /*Dmitri Gribenko &lt;<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>&gt;*/</div>
</div></div>