Esta semana en Rust #12
¡Hola y bienvenidos a otro número de This Week in Rust!
Rust
¿Quieres que se mencione algo? Etiquétanos en @ThisWeekInRust en Twitter o @ThisWeekinRust en mastodon.social, o envíanos una solicitud de extracción
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
envíe un PR.
- Anunciando 'async fn' y return-position 'impl Trait' en los rasgos
- Actualización de la Iniciativa de Refactorización del Sistema de Rasgos de Rustc: Un llamado a la prueba
- Mi camino para convertirme en rustáceo
- La seguridad de la memoria es una pista falsa
- Los errores más comunes del compilador de Rust que se encuentran en RustRover: Parte 2
- Mi referencia fue eliminada, ¿por qué el compilador se queja de múltiples préstamos?
- ¿Puede CppRef ser ergonómico?
- [video] Rust 1.74.1 & Rust News
- El lado oscuro de la inserción y la monomorfización
- El corazón de un servidor de idiomas
- Rust: subprocesos múltiples
- [serie] Meilisearch amplía el poder de búsqueda con la RNA de disco filtrado de Arroy
- Portales encriptados entre Macs – construidos en Rust y Swift (algo similar a ngrok y tailscale)
- [video] Manejo de errores en Rust
- Una encuesta anónima sobre estática mutable
- Desarrollo web en Rust
- Rocket: ¡Hola Mundo! basado en la web con pruebas
El crate de esta semana es rouille, un pequeño marco web síncrono.
¡Gracias a Peter Puetz por la sugerencia!
[Por favor, envíen sus sugerencias y votos para la próxima semana] submit_crate!
Algunas de estas tareas también pueden tener mentores disponibles, visite la página de tareas para obtener más información.
- greptimedb - Añadir más tablas en 'information_schema' para una mejor compatibilidad
- Ockam - Comprueba que el argumento del comando bootstrap_server es un host:port válido
- Ockam - Refactorizar para usar interfaces tipificadas
- Ockam - Comprobar que las estructuras cumplen con el esquema cddl
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.
¿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 están aceptando presentaciones para unirse a su evento como orador.
- No nuevas convocatorias de ponentes este week
Si usted es un organizador de eventos que espera ampliar el alcance de su evento, envíe un enlace al sitio web de envío, ya sea a través de un PR a TWiR o en los [foros de Rust-lang]. [enlace por determinar]
Se [fusionaron 268 solicitudes de extracción en la última semana][fusionadas]
- añadir soporte para bucles 'for await'
- añadir el objetivo de Illumos Aarch64 para Rust
- añadir soporte para hexagon-unknown-none-elf como objetivo
- -Znext-solver: adaptar las reglas de desbordamiento para evitar roturas
- 'rustc_codegen_ssa': No sueltes 'IncorrectCguReuseType', haz que 'rustc_expected_cgu_reuse' attr funcione
- 'subtype_predicate': eliminar la sonda innecesaria
- añadir comprobación de posibles literales 'CStr' en anteriores a 2021
- añadir método para obtener argumentos de instanciación de instancia
- agregar la puerta de función faltante para el desinfectante CFI cfgs
- evitar la opción redundante para 'cross_crate_inlinable'
- Cobertura: Comprueba si hay 'fn asíncrono' explícitamente, sin necesidad de una heurística
- no permitir discrepancias de ABI dentro de los tipos 'repr(C)'
- no buscar HIR en 'inferred_outlives_of'
- emitir mejores sugerencias para '&T == T' y 'T == &T'
- emite error si tiene regiones enlazadas
- codificar 'CoroutineKind' directamente
- Exhaustividad: mejora la complejidad en algunos partidos amplios
- exhaustividad: mantener el original 'thir::P at'
- exhaustividad: revelar opacos vacíos en profundidad
- exhaustividad: revelar correctamente los tipos opacos
- reserva 'por defecto' a 'Ninguno' durante la reducción de ast para la carpeta de por vida
- arreglar ICE cuando se usa ptr sin procesar en un patrón
- se corrige el bloqueo debido a que 'CrateItem::kind()' no maneja constructores
- dar temporales si deja que los guardias corrijan los alcances
- hacer que 'soft_unstable' aparezca en futuros informes de roturas
- hacer que los cierres lleven su propio ClosureKind
- marque 'ty::Const::Error' cuando cumpla con un ty no compatible con los parámetros genéricos const
- pasa 'DeadItem' y lint como grupo consistente en código muerto
- eliminar la duplicación de la API 'DiagCtxt'
- eliminar la caché de decodificación de metadatos 'DefPathHash'
- Resuelve: Alimenta con entusiasmo las visibilidades de los cierres
- Resolver: Alimentar las visibilidades de los elementos de impl de rasgos no resueltos
- Resolver: Dejar de alimentar las visibilidades de los tallos de la lista de importación
- reelaboración '-Zverbose'
- modificación simple de la información de diagnóstico de «non_lifetime_binders» para adaptarla a las carpetas de tipos
- omitir la codificación duplicada de ID de caja estable en los metadatos
- separar el tipo de desazúcar de corrutina de la fuente
- sincronización de subárbol para 'rustc_codegen_cranelift'
- sugerir '=' a '==' en más casos, incluso ante la falta de coincidencia de referencias
- agregar la función ABI y el diseño de tipo a StableMIR
- separar las pelusas MIR de la validación
- Miri: implementar y probar 'simd_masked_load' y 'simd_masked_store'
- mejorar la eficiencia de codificación para 'RawDefId'
- use 'Vec' para las restricciones de región en lugar de 'BTreeMap'
- estabilizar 'file_create_new'
- Estabilizar la función 'ip_in_core'
- añadir más nichos a rawvec
- add 'IntoAsyncIterator'
- añadir 'pista::assert_unchecked'
- cargo: extender la sintaxis de la directiva de compilación con 'cargo:':
- Carga: mantén el bloqueo exclusivo de mutar al vender
- cargo: refactorizar: centralizar los checkouts de Git y las rutas de base de datos
- cargo: refactor: tipos de error personalizados para 'cargo-util-schemas'
- cargo: rework '--check-cfg' comentario de generación
- rustdoc: Agregar información 'is_object_safe' para rasgos en la salida JSON
- Rustdoc: Se corrigió la visualización del bloque de advertencia si es el primer elemento del bloque de documentación superior
- clippy: 'question_mark': también se activa en las sentencias 'return'
- clippy: comprueba si está fuera de límite cuando se accede a una matriz de longitud conocida con un índice constante
- clippy: no considerar 'async { (impl IntoFuture).await }' como redundante
- clippy: extender 'UNNECESSARY_TO_OWNED' para manejar 'split'
- clippy: mover 'uninhabited_references' a 'vivero'
- clippy: nuevas pelusas 'iter_filter_is_some' y 'iter_filter_is_ok'
- clippy: evitar que la sugerencia de 'bool_comparison' consuma paréntesis
- rust-analyzer: macros exportadas completas en '#[macro_use($0)]'
- rust-analyzer: implemente un modo de servidor proc-macro respaldado por span de rust-analyzer
- Rust-Analyzer: Elimina automáticamente los llaves innecesarios después de eliminar las importaciones no utilizadas
- rust-analyzer: configurar y marcar correctamente los intervalos proc-macro
- rust-analyzer: arreglar el análisis de finalizaciones que no almacenan en caché todos los nodos en Semantics
- Rust-analyzer: Arreglar el marcado de intervalo para macros FN incorporadas
- Analizador de Rust: elimine completamente los tramos ficticios
- Rust-analyzer: eliminar la coma incorrecta después de eliminar los corchetes innecesarios
Triaje realizado por @kobzol
bf9229a2e366b4c311f059014a4aa08af16de5d8.. 1ab783112ab4e4807304dbd249b39771246013ef
Resumen:
(instrucciones:u) | media | Gama | Recuento |
---|---|---|---|
Regresiones ❌ (primaria) | 0.6% | [0.6%, 0.6%] | 1 |
Regresiones ❌ (secundaria) | 2.5% | [0.3%, 4.2%] | 10 |
Mejoras ✅ (primaria) | -0,8% | [-3,3%, -0,1%] | 180 |
Mejoras ✅ (secundaria) | -1,2% | [-5,5%, -0,2%] | 109 |
Todos ❌✅ (primario) | -0,8% | [-3,3%, 0,6%] | 181 |
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
- Esta semana no se aprobaron RFC.
Cada semana, el equipo
- Ninguna RFC entró en el Período de Comentarios Final esta semana.
- [disposición: fusionar] Usar la clasificación de versiones para todas las clasificaciones
- [disposición: fusionar] Problema de seguimiento para patrones de rango exclusivos
- [Disposición: Fusionar] RustDoc: Limpiar el botón de ocultación de la barra lateral de origen
- Ninguna RFC de referencia lingüística entró en el Período Final de Comentarios esta semana.
- Ninguna RFC de la Guía de Código Inseguro entró en el Período Final de Comentarios esta semana.
Las RFC se beneficiarían de las pruebas de usuario antes de seguir adelante:
- Ninguna RFC emitió una convocatoria para pruebas esta semana.
necesitan pruebas.
Eventos oxidados entre 2023-12-27 - 2024-01-24 🦀
- 28/12/2023 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 03/01/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 09/01/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 11/01/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 16/01/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 27/12/2023 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 28/12/2023 | Viena, AT | Rust Viena
- 11/01/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 11/01/2024 | Wrocław, PL | Rust de Breslavia
- 13/01/2024 | Helsinki, FI | Grupo Rust-lang de Finlandia
- 27/12/2023 | Austin, TX, EE. UU. | Rust ATX
- 06/01/2024 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 08/01/2024 | Chicago, IL, EE. UU. | Rust de plato profundo
- 09/01/2024 | Seattle, WA, EE. UU. | Cap Hill Rust Codificación/Hackeo/Aprendizaje
- 09/01/2024 | Minneapolis, MN, EE. UU. | Reunión de Rust en Minneapolis
- 14/01/2024 | Cambridge, MA, EE. UU. | Reunión de Boston Rust
- 16/01/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 17/01/2024 | Chicago, IL, EE. UU. | Rust de plato profundo
Si está ejecutando un evento de Rust, agréguelo al calendario
Envíe un correo electrónico al [Equipo de la comunidad de Rust] comunidad para acceder.
Por favor, vea el último hilo de Quién está contratando en r/rust
Rust puede ser bastante más prolijo que C; Hay muchas invariantes que tienen que ser expresadas en el código. Pero eso se contrarresta con la necesidad de mucho menos código de manejo de errores; Resulta ser un lavado, ya que el tamaño de las dos implementaciones es aproximadamente el mismo.
– Alice Ryhl en la Conferencia de Plomeros de Linux citada por Jonathan Corbet, LWN
¡Gracias a Ivan Fraixedes 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, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
El alojamiento de la lista de correo electrónico está patrocinado por The Rust Foundation