Swift on bare metal.
Obviously, you need the Swift compiler, which should also get you a working Clang. Make sure your Clang supports bare ELF targets. I'm also using yasm
for some assembly, and you'll need an ld
that can spit out elf_i386
.
We tell swiftc
to spit out LLVM intermediate representation, and then have Clang (which is much more reasonable about retargeting) build it into an object file, and then we link that together with some Multiboot stuff.
What's in here right now doesn't need any Swift runtime support. That will change very quickly as we try to add support for things like arrays, classes, structs, strings, etc.