Connect with us

Hi, what are you looking for?

Geeks

Swift System Is Now Completely Open Source With Fully Functional Linux Support

Back in June this year, Apple engineers introduced Swift System — a new library to interface with low-level currency types and system calls. Today, Apple open-sourced Swift System and also added Linux support.

The idea behind Swift System is to present a one-stop solution to low-level system interfaces for all supported Swift platforms. So let’s check out what’s new in it:

Leaving Imported C Interfaces Behind

The majority of the operating systems we use today work on support some type of system interface written in C and it has remained the same for decades. These APIs can be used directly from Swift, but such weakly-typed system interfaces imported from C are prone to error and are unmanageable.

For instance, in UNIX-like operating systems such as Linux and Apple’s OS, weakly-typed functions have several cons and they fail to utilize the expressivity and type safety one can find in Swift.

Also Read: Swift Programming Language Now Available On Windows 10

Introducing Idiomatic Swift Interfaces

The Swift System module introduces several language features to improve expressivity and reduces the chances error. For e.g. System defines the open system call as a static function with defaulted arguments in the FileDescriptor namespace:

On comparing this version to the original version in C, you can spot significant differences such as:

Advertisement. Scroll to continue reading.
AIAD
  • System uses raw representable structs and option sets. Such strong types help in identifying mistakes at compile time and are easier to convert to and from the weaker C types.
  • Errors are thrown using the standard language mechanism and cannot be missed.
  • FilePath is a managed, null-terminated bag-of-bytes that conforms to ExpressibleByStringLiteral — far safer to work with than a UnsafePointer<CChar>.

It is important to note that System is not a cross-platform but a multi-platform library. It provides a separate set of APIs and behaviors on every supported platform, which closely reflects the underlying OS interfaces. Therefore, a single import will pull in the native platform interfaces specific for the OS you choose.

Image Source: Fossbytes

You May Also Like

Reviews

If you have a Windows 11 device with an older version of the operating system, it’s important to know that your system may be...

Video

Credit: YouTube/TechCrunch

Tweaks

It’s common knowledge that Windows XP won’t run on a 386, or Windows 95 on an original IBM PC. However, with the latest releases...

Reviews

In the wake of a new interim CEO taking the reins from long-time Mozilla CEO Mitchell Baker, the organization has announced a shift in...