Esta semana en Rust #57
¡Hola y bienvenidos a otro número de This Week in Rust! Rust es un lenguaje de programación que permite a todo el mundo crear software fiable y eficiente. Este es un resumen semanal de su progreso y comunidad. ¿Quieres que se mencione algo? Etiquétanos en @thisweekinrust.bsky.social en Bluesky o @ThisWeekinRust en mastodon.social, o envíanos un PR. ¿Quieres participar? Nos encantan las contribuciones.
This Week in Rust se desarrolla abiertamente en GitHub y los archivos se pueden ver en this-week-in-rust.org. Si encuentra algún error en la edición de esta semana, por favor envíe un PR.
¿Quieres tener TWIR en tu bandeja de entrada? Suscríbete aquí.
Actualizaciones de la comunidad de Rust 🥰
Fundación
Actualizaciones de proyectos/herramientas
Observaciones/Pensamientos
- Dos formas de interpretar la visibilidad en Rust
- ¿El uso de Rust realmente hace que tu software sea más seguro? - Blog - Tweede golf
- Cuerpo::p oll_progreso
- ratatui: ¿ya estamos incrustados?
- Zig -> asignadores -> Ergonomía Rust
- Eventos de marcha: ¿Qué tiene que ver iCalendar con la marcha de rayos?
- [audio] Nushell con WindSoilder
- [audio] Microsoft con Víctor Ciura
Tutoriales de Rust
- Implementación de pánicos de Rust en la biblioteca estándar
- Cómo funciona un GraphQL DataLoader
- Implementando un GraphQL DataLoader de la manera difícil
Crate de la semana
El crate de esta semana es Maycoon, un marco de interfaz de usuario experimental basado en vello/wGPU.
¡Gracias a DraftedDev por la autosugerencia!
Por favor, envíen sus sugerencias y votos para la próxima semana!
Llamadas a la realización de pruebas
Un paso importante para la implementación de RFC es que las personas experimenten con el implementación y dar retroalimentación, especialmente antes de la estabilización.
Si es un implementador de características y desea que su RFC aparezca en esta lista, agregue un 'call-for-testing' a su RFC junto con un comentario que proporcione instrucciones de prueba y/o orientación sobre qué aspectos de la función deben probarse.
-
- Esta semana no se emitieron convocatorias para pruebas por parte de Rust, RFC del lenguaje Rust o Oxidación.*
Háganoslo saber si desea que se realice un seguimiento de su función como parte de esta lista.
RFCs
Rust
Rustup
Si es un implementador de funciones y desea que su RFC aparezca en la lista anterior, agregue la nueva 'llamada para pruebas' a su RFC junto con un comentario que proporcione instrucciones de prueba y/o orientación sobre qué aspecto(s) de la función necesitan pruebas.
Llamado a la participación; Proyectos y ponentes
CFP - Proyectos
¿Siempre quisiste contribuir a proyectos de código abierto pero no sabías por dónde empezar? ¡Cada semana destacamos algunas tareas de la comunidad de Rust para que elijas y comiences!
Algunas de estas tareas también pueden tener mentores disponibles, visite la página de tareas para obtener más información.
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, por favor envía tareas aquí o a través de un PR to TWiR o poniéndote en contacto con X (antes Twitter) o Mastodon!
CFP - Eventos
¿Eres un orador nuevo o experimentado que busca un lugar para compartir algo genial? Esta sección destaca los eventos que se están planificando y que están aceptando presentaciones para unirse a su evento como orador.
Si usted es un organizador de eventos que espera expandir el alcance de su evento, envíe un enlace al sitio web a través de un PR to TWiR o comunicándose en X (anteriormente Twitter) o Mastodon!
Actualizaciones del Proyecto Rust
Se [fusionaron 465 solicitudes de extracción en la última semana][fusionadas]
Compilador
- evitar el desbordamiento al generar información de depuración para expandir tipos recursivos
- deref patterns: implementar patrones deref implícitos
- Se corrigió la sugerencia incorrecta de "mover palabra clave" para el bloque de generación asíncrona
- Mejorar los errores de análisis para la vida útil de los parásitos en la posición del tipo
- hacer '#[desnudo]' un atributo inseguro
- reescribir el analizador de cadenas de formato 'on_unimplemented'
Miri
- miri: implementar la eliminación de archivos en Windows
- Miri: use intrínsecos declarados por std en lugar de copiar la declaración
Biblioteca
- añadir 'next_index' a Enumerar
- agregar reintentos para eliminar y crear dir todo
- 'sync::mpsc': evitar doble libre en 'Drop'
- implementar 'Default' para punteros sin procesar
- Implementa 'pin! ()' usando 'super let'
- estabilizar '-Zdwarf-version' como '-Cdwarf-version'
- estabilizar 'cfg_boolean_literals'
- estabilizar 'naked_functions'
- Simd intrínsecos con máscara: acepta máscaras de enteros sin signo y corrige algunos de los errores
- añadir 'vec_extract', 'vec_insert', 'vec_promote' y 'vec_insert_and_zero'
Carga
Rustdoc
- Corregir error cuando un enlace intra doc está intentando resolver un elemento asociado vacío
- rustdoc-json: información de la característica de destino de salida
- Soporte de alias de rasgos reexportados de cajas cruzadas en línea
Clippy
- clippy: 'bool_to_int_with_if': maneja correctamente las macros
- clippy: 'empty_enum_variants_with_brackets': No pelar las enumeraciones alcanzables y las variantes de 'enumeración' utilizadas como funciones en la misma caja
- clippy: 'iter_kv_map': reconocer referencias en mapas también
- clippy: 'manual_ok_err': no peluques subpatrones
- clippy: 'match_single_binding': permitir macros en escrutinio y patrones
- clippy: 'missing_asserts_for_indexing': considera 'assert_eq! ()' también
- clippy: 'ptr_cast_constness': mostrar fragmento del contexto correcto
- clippy: compilar un tipo utilizable completo a partir de un prefijo relativo al tipo
- clippy: verifique también los usos de por vida en los cierres
- clippy: no se repita para siempre en 'significant_drop_tightening'
- clippy: corrige 'question_mark' sugiriendo cuando el tipo está detrás de Deref incluir paréntesis
- clippy: corrección: 'unnecessary_lazy_evaluations' sugiere erróneamente el cierre asíncrono
- clippy: hacer que la bandera 'borrow_as_ptr' también se convierta en un signo implícito
- clippy: nueva pelusa: 'redundant_test_prefix'
- clippy: nueva pelusa: 'swap_with_temporary'
- clippy: reemplaza la internación de literales de cadena con símbolos preinternados
Analizador de Rust
- Rust-analyzer: agregue punto y coma para usar
- rust-analyzer: permitir el entrenamiento de PGO en una caja personalizada y habilitarlo Windows en CI
- rust-analyzer: permitir el uso de 'null' para desestablecer una variable de entorno
- rust-analyzer: build aarch64 se basa en CI con PGO
- rust-analyzer: no ignorar los valores de configuración que no se pueden analizar
- rust-analyzer: añadir la opción 'pub(crate) mod' para archivos desvinculados
- rust-analyzer: permitir desconfigurar variables de entorno en la configuración de 'server.extraEnv'
- rust-analyzer: ayuda mejorada de la firma para mostrar parámetros genéricos para invocables y valores predeterminados para args genéricos
- rust-analyzer: parse 'super let'
- rust-analyzer: analizar consts genéricas
- rust-analyzer: La función 'Extraer en' incluye una variable en línea en la macro fmt
- rust-analyzer: arreglar la configuración 'completion_snippets_custom' siempre fallando
- rust-analyzer: se corrige un error con la reducción de predicados de elementos asociados
- rust-analyzer: soluciona un pánico cuando un método de rasgo en un impl declara un parámetro de vida que no está en la declaración de rasgo
- Rust-analyzer: resaltado para la expansión de la cola en bloques etiquetados
- Rust-analyzer: ordenar rasgos notables en el desplazamiento
- rust-analyzer: soporta la inestable 'UnsafePinned struct' en el cálculo de diseño de tipos
- rust-analyzer: use PGO en compilaciones de Linux x64
- rust-analyzer: use PGO en compilaciones de macOS x64 y arm64
Clasificación del rendimiento del compilador de Rust
Semana mayoritariamente positiva. La mayoría de las mejoras provienen de una reversión de una regresión de hace unas semanas, pero también obtenemos buenas ganancias al reutilizar la ruta rápida de Sized, proveniente del trabajo de implementación de la jerarquía de Sized.
Triaje realizado por @panstromek. Rango de revisión: 15f58c46.. 8F2819B0
Resumen:
| (instrucciones:u) | media | Gama | Recuento |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regresiones ❌
(primario) | 1.3% | [0.4%, 2.1%] | 7 |
| Regresiones ❌
(secundaria) | - | - | 0 |
| Mejoras ✅
(primario) | -1.0% | [-12,9%, -0,1%] | 144 |
| Mejoras ✅
(secundaria) | -2,2% | [-12.3%, -0.2%] | 111 |
| Todos ❌✅ (primarios) | -0.9% | [-12.9%, 2.1%] | 151 |
RFC aprobados
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios). Estos son las RFC que se aprobaron para su implementación esta semana:
- No se aprobaron RFC esta semana.
Período final de comentarios
Cada semana, el equipo anuncia el 'período final de comentarios' para las RFC y las RP clave que están llegando a una decisión. Expresa tus opiniones ahora.
Seguimiento de problemas y relaciones públicas
Rust
- Estabilizar '<[T; N]>::as_mut_slice' como 'const'
- Problema de seguimiento para 'hint::select_unpredictable'
- fix(test): Exponer '--no-capture' a favor de '--nocapture'
- estabilizar ptr::swap_nonoverlapping en const
- Estabilizar las características del objetivo avx512
- No permitir format_args aplanadas en const.
- lexer: Tratar más flotantes con exponente vacío como tokens válidos
- Estabilizar proc_macro::Span::{inicio,fin,línea,columna}.
- Comprobar los tipos de valores predeterminados de los parámetros const
- Estabilizar banderas para la compilación cruzada doctest
Otras áreas
Carga
Referencia lingüística
No hay artículos ingresados al Período Final de Comentarios esta semana para RFC de Rust, Equipo lingüístico o Directrices de códigos inseguros.
Háganos saber si desea que se realice un seguimiento de sus solicitudes de incorporación de cambios, problemas de seguimiento o RFC como parte de esta lista.
RFC nuevas y actualizadas
- RFC: Deshabilitar la optimización de diseño de nicho en discriminantes de enumeración
- RFC: Asumir límites para funciones genéricas
- RFC: macros de entrada
Próximos eventos
Eventos oxidados entre 2025-04-23 - 2025-05-21 🦀
Virtual
- 23/04/2025 | Virtual (Cardiff, Reino Unido) | Rust y C++ Cardiff
- 24/04/2025 | Virtual (Berlín, DE) | Rust Berlín
- 24/04/2025 | Virtual (Charlottesville, VA, EE. UU.) | Reunión de Rust en Charlottesville
- 03/05/2025 | Virtual (Kampala, UG) | Reunión de Rust Circle
- 05/05/2025 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 07/05/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 07/05/2025 | Virtual (Róterdam, Países Bajos) | Desarrollo de juegos de Bevy
- 08/05/2025 | Virtual (Berlín, DE) | Rust Berlín
- 13/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 15/05/2025 | Virtual (Berlín, DE) | Rust Berlín
- 2025-05-20 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 21/05/2025 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
Europa
- 23/04/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 24/04/2025 | Aarhus, DK | Rust Aarhus
- 24/04/2025 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 24/04/2025 | Edimburgo, Reino Unido | Rust y sus amigos
- 24/04/2025 | Manchester, Reino Unido | Rust de Manchester
- 25/04/2025 | Edimburgo, Reino Unido | Rust y sus amigos
- 2025-04-26 | Estocolmo, SE | Estocolmo Rust
- 29/04/2025 | Londres, Reino Unido | Grupo de usuarios de Rust London
- 29/04/2025 | París, FR | Rust Paris
- 30/04/2025 | Fráncfort, DE | Rust Rhein-Main
- 01/05/2025 | Nürnberg, DE | Rust de Núremberg
- 04/05/2025 | Estambul, TR | Comunidad de Rust de Türkiye
- 06/05/2025 - 07/05/2025 | París, FR | WebAssembly y Rust Meetup
- 06/05/2025 | París, FR | WebAssembly y Rust Meetup (Wasm Empowering AI)
- 07/05/2025 | Madrid, ES | Rust loco
- 07/05/2025 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
- 08/05/2025 | Gdansk, PL | Rust Gdansk
- 08/05/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 2025-05-13 - 2025-05-17 | Utrecht, NL | Rust NL
- 14/05/2025 | Reading, Reino Unido | Taller de lectura de Rust
- 16/05/2025 | Utrecht, NL | Grupo de Meetup de Rust NL
- 2025-05-20 | Aarhus, DK | Rust Aarhus
- 2025-05-20 | Leipzig, SN, DE | Rust - Programación de sistemas modernos en Leipzig
América del Norte
- 23/04/2025 | Austin, TX, Estados Unidos | Rust ATX
- 23/04/2025 | Austin, TX, Estados Unidos | Rust ATX
- 23/04/2025 | Spokane, WA, EE. UU. | Rust de Spokane
- 24/04/2025 | Atlanta, Georgia, Estados Unidos | Rust Atlanta
- 25/04/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 01/05/2025 | Saint Louis, MO, EE. UU. | STL Rust
- 03/05/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 08/05/2025 | Ciudad de México, MX | Rust MX
- 08/05/2025 | Portland, Oregón, Estados Unidos | PDXRust
- 11/05/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 15/05/2025 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 15/05/2025 | Redmond, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 2025-05-20 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
América del Sur
- 28/05/2025 | Montevideo, DE, UY | Rust Meetup Uruguay
Si está ejecutando un evento de Rust, agréguelo al calendario para obtener que se menciona aquí. Por favor, recuerde agregar un enlace al evento también. Envíe un correo electrónico al Equipo de la comunidad de Rust para acceder.
Empleos
Por favor, consulte el último hilo de Who's Hiring en r/rust
Frase de la semana
tampoco pienso en el Rust. Ese es el trabajo de un compilador
¡Gracias a Matt Wismer por la sugerencia!
¡Por favor, envíe sus cotizaciones y vote para la próxima semana!
This Week in Rust es editado por: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
El alojamiento de la lista de correo electrónico está patrocinado por The Rust Foundation