Header Ads Widget

Ticker

6/recent/ticker-posts

Swift System ahora es de código abierto con soporte para Linux

 

código abierto del sistema rápido

En junio de este año, los ingenieros de Apple presentaron Swift System, una nueva biblioteca para interactuar con tipos de moneda de bajo nivel y llamadas al sistema. Hoy, Apple Swift System de código abierto y también agregó soporte para Linux.

La idea detrás de Swift System es presentar una solución integral para interfaces de sistema de bajo nivel para todas las plataformas Swift compatibles. Así que echemos un vistazo a las novedades:

Dejando atrás las interfaces C importadas

La mayoría de los sistemas operativos que usamos hoy funcionan con algún tipo de interfaz de sistema escrita en C y ha permanecido igual durante décadas. Estas API se pueden usar directamente desde Swift, pero estas interfaces de sistema de tipo débil importadas desde C son propensas a errores y no se pueden administrar.

Por ejemplo, en sistemas operativos similares a UNIX, como Linux y el sistema operativo de Apple, las funciones de tipo débil tienen varios inconvenientes y no utilizan la expresividad y la seguridad de tipos que se pueden encontrar en Swift.

Lea también: El lenguaje de programación Swift ahora está disponible en Windows 10

Presentamos las interfaces rápidas idiomáticas

El módulo Swift System introduce varias funciones de lenguaje para mejorar la expresividad y reduce las posibilidades de error. Por ejemplo, Systemdefine la llamada al sistema abierto como una función estática con argumentos predeterminados en el espacio de nombres FileDescriptor:

Al comparar esta versión con la versión original en C, puede detectar diferencias significativas como:

  • Systemutiliza conjuntos de opciones y estructuras representables sin formato. Estos tipos fuertes ayudan a identificar errores en tiempo de compilación y son más fáciles de convertir hacia y desde los tipos C más débiles.
  • Los errores se lanzan utilizando el mecanismo de lenguaje estándar y no se pueden perder.
  • FilePathes una bolsa de bytes administrada con terminación nula que cumple con ExpressibleByStringLiteral, mucho más seguro trabajar con él que un UnsafePointer<CChar>.

Es importante señalar que Systemno es una biblioteca multiplataforma sino multiplataforma. Proporciona un conjunto separado de API y comportamientos en cada plataforma compatible, que refleja fielmente las interfaces del sistema operativo subyacente. Por lo tanto, una sola importincorporará las interfaces de la plataforma nativa específicas para el sistema operativo que elija.

Publicar un comentario

0 Comentarios