Recursive Tail Calls and Trampolines in Swift

May 5, 2016

The use of recursion can improve the overall design of your algorithms but it leaves you susceptible to stack overflows if the compiler is unable to perform specific optimizations. In this post we'll see what tail recursion and TCO are and how the use of trampolines can overcome the fact that we cannot rely on the Swift compiler performing tail call elimination.
[Read...]

Swift And C: Everything You Need to Know

April 7, 2016

Now that Swift is available on Linux and other OSes, there are even more situations where you could need to interact with C code from your Swift application. This article will hopefully shed some light on the most non-obvious details and give you some practical examples and tips of how to interact with C APIs like the C standard library.
[Read...]

A Recap of the Swift Porting Efforts #2

March 11, 2016

Since the first installment of this series a few established ports have received updates and a few new things have finally landed on master. Let's recap what happened in the last month on the front of porting Swift on other platforms.
[Read...]

Swift 3.0 now available for all the ARMv6 RaspberryPi (1,Zero)

March 10, 2016

After the Swift 2.2 binaries, you can now download Swift 3.0 compiled for ARMv6 single board computers, all models of RaspberryPi 1 and the new Zero.
[Read...]

Swift available for all the ARMv6 RaspberryPi (1,Zero)

February 10, 2016

Swift compiled for ARMv6 single board computers, all models of RaspberryPi 1 and the new Zero.
[Read...]

A Short Swift GYB Tutorial

February 9, 2016

The GYB tool is used internally in Swift to simplify source files with many snippets of code that follow a common pattern. GYB provides some additional directives that are parsed by the tool to generate the final source files. This short tutorial describes how to use GYB in your own projects.
[Read...]

Dealing with Bit Sets in Swift

February 5, 2016

Swift provides a convenient set of functionalities for fixed size integers and binary operations but you'll soon discover that in some cases the language is a bit opinionated in regard to how those operations should be performed. This post explains some of the gotchas and describe Bitter, a Swift bit manipulation library.
[Read...]


This is the blog of Umberto Raimondi, you can reach me at me@this domain.

I'm also on Twitter and GitHub.

Subscribe via RSS or email.