Regreso al futuro: Scala 3.1 construye un puente a Scala 2 y sigue su propio camino

El lenguaje de programación Scala se lanzó en la versión 3.1 y, por lo tanto, determina el esquema de lanzamiento. major.minor.patch Um – a diferencia de Scala 2, que todavía sigue el gráfico epoch.major.minor Continuado. Así que la versión 3.1 es la primera versión menor después de la principal Scala 3.0. La versión menor estable tiene algunas características nuevas en su bagaje, incluidas algunas que todavía están en beta. safer exceptions Declarar y comprobar posibles excepciones. Opcionalmente, puede usar el comando import language.experimental.saferExceptions activación. Los tipos se pueden definir con el tipo de excepción deseado, que se activará durante la evaluación: Si necesita información más detallada sobre esto, Lo encontrarás en la documentación..

def f(x: Double): Double throws LimitExceeded =
  if x < limit then f(x) else throw LimitExceeded()

Otra característica nueva es la optimización del código de bytes cuando se hace coincidir a través de un literal de cadena, y los desarrolladores de Scala poseen la etiqueta del compilador -Wconf adicional. Aparentemente, esto permite filtrar y configurar las advertencias del compilador, por ejemplo, silenciarlas o convertirlas en mensajes de error. La conocida anotación de Scala 2.13 celebra el regreso @nowarnLo que originalmente se remonta a un complemento de silenciador. Con esta anotación, las advertencias esperadas se pueden suprimir directamente en el código, es decir, en los puntos donde se esperan. De acuerdo con el anuncio de lanzamiento, la anotación revivida y el nuevo indicador del compilador funcionan de manera muy similar a lo que cabría esperar de Scala 2. Solo se han cambiado algunos filtros para identificar los mensajes de advertencia. La función de ayuda revela más sobre este tema, al que se puede acceder ingresando -Wconf:help puede ser llamado.

READ  Asistente de Google - Noticias: modo de conducción, coincidencia de voz y más

Más innovaciones benefician la compatibilidad con Scala 2. El compilador Scala 3 ahora proporciona una síntesis clara y simplificada para crear instancias de Manifest-Imagen para poder crear. La nueva implementación, según el equipo de Scala, es una aproximación ligeramente simplificada de la implementación original en Scala 2. Tiene como objetivo asegurar que una serie de expresiones que eran verdaderas en Scala 2 seguirán siendo verdaderas cuando se compilen con Scala 3. Por lo tanto, Se garantiza específicamente la validez de las siguientes expresiones:

  • manifest[A] == manifest[B]
  • manifest[A].runtimeClass == manifest[B].runtimeClass
  • optManifest[A] == optManifest[B]
  • optManifest[A].asInstanceOf[ClassTag[A]].runtimeClass == optManifest[B].asInstanceOf[ClassTag[B]].runtimeClass

Ahora debería haber una opción inversa para las jerarquías selladas, y una serie de otros cambios entrarán en vigor en Scala 3.1. Entre otras cosas, el equipo de Scala está anotando @experimental Liberado de la fase beta. A partir de ahora, los usuarios ya no tendrán que recurrir a la compilación nocturna del ensamblador para marcar las API como “beta”. Hay uno dedicado a esto Sección en documentos de diseño.

De acuerdo con la notificación de lanzamiento, Scala 3.1 es compatible con versiones anteriores en binarios, por lo que los desarrolladores pueden continuar usando dependencias compiladas con Scala 3.0 en proyectos construidos con Scala 3.1 sin ningún problema. Escala 3.1. Sin embargo, es incrementalmente incompatible, afirman los editores: por ejemplo, las dependencias creadas con Scala 3.1 no se pueden usar en proyectos de Scala 3.0.

Según el equipo de Scala, cualquier persona que desarrolle aplicaciones debería poder actualizar la versión del compilador sin ningún problema. Por otro lado, si es un encargado de mantenimiento de la biblioteca, la actualización de Scala 3.1 obliga a todos los usuarios a realizar la actualización también. Esto puede dar lugar a inconsistencias en algunos proyectos. Si no está seguro, debe esperar a Scala 3.2 si es posible y publicar su propia biblioteca solo en 3.0.2 por ahora: esto asegura que los usuarios intermedios que todavía están usando la actualización de Scala 3.1 puedan continuar usando la biblioteca. llevar a. Una compilación de muestra está disponible en Github, que se basa en esta recomendación.

READ  Se anuncia la fecha de lanzamiento de la consola Chernobylite sci-fi survival horror

La abundancia puede ser todas pequeñas y grandes innovaciones. Se puede encontrar en la entrada del blog del equipo de desarrollo de Scala.. Si quieres saber exactamente, también te gustará. Ver el registro de cambios Lanzar. Siguiente parche versión 3.1.1. Planeado para principios de diciembre de 2021.


(Sí)

a la página de inicio

Eliseo Cardenas

"Webaholic orgulloso. Analista. Pionero de la cultura pop. Creador. Pensador malvado. Fanático de la música".

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *