Esta semana en Rust #10
¡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.
- registro de cambios de rust-analyzer #211
- Generador de música para PC
- Anuncio de mfio - E/S de finalización para todos
- Watchexec Library 3.0 y CLI 1.24
- [serie] Inspirado en Spotify: Elevando Meilisearch con Hybrid Search y Rust
- Rust Is Beyond Object-Oriented, Part 3: Inheritance
- Ser Rusty: Descubriendo los axiomas de diseño de Rust
- ¿Cuándo no se envían futuros?
- 'por esperar' y la batalla de los arroyos amortiguados
- poll_progress
- Rust y ThreadX - experimentos con un RTOS escrito en C, un antiguo componente de software certificado
- Nueve reglas para la aceleración SIMD de su código Rust (Parte 1): Lecciones generales de aumentar la ingesta de datos en la caja range-set-fire en 7x
- Contribuyendo a Rust como novato
- [audio] Explorando el impacto de Rust en la eficiencia y el ahorro de costes, con Stefan Baumgartner
- Errores comunes con Rust Async
- Embajada en ESP: Transmisor UART
- Escribir una herramienta CLI en Rust con Clap
- Memoria e iteración
- Primeros pasos con Axum - El framework web más popular de Rust
- Exploración del SDK de AWS Lambda en Rust
- Práctico Rust del lado del cliente para Android, iOS y Web
- [video] Advenimiento del Código 2023
- Turbofish ::<>
- Rust Meetup y grupos de usuarios
- Adoptando Rust: el libro de jugadas que faltaba para gerentes y CTO
- SemanticDiff 0.8.8 añade soporte para Rust
El crate de esta semana es io-adapters, una caja que te permite convertir entre diferentes API grabables ('io' vs. 'fmt').
¡Gracias a Alex Saveau por la autosugestión!
[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 - Mejora de la API para el resultado de la consulta sql de impresión bonita en la salida http 1
- greptimedb - Unificar patrones de constructores
- tokio - Ejecutar pruebas de telar en oss-fuzz 4
- Ockam - Biblioteca - Validar estructuras CBOR de acuerdo con el esquema cddl para 'kafka/protocol_aware' y 'nodes/services'
- Ockam - Comando - refactorizar para usar interfaces tipadas para implementar comandos para 'relés'
- Ockam - Haz que install.sh no falle cuando la última versión ya está instalada
- zerocopy - Use cargo-semver-checks para asegurarse de que la función 'derivar' no cambie la superficie de la API
- zerocopy - Verifique que el trabajo de CI 'all-jobs-succeeded' dependa de todos los demás trabajos
- Hyperswitch - [REFACTOR]: [Nuvei] Validación de metadatos MCA
- Hyperswitch - [Característica]: [Mediodía] Sincronización con Referencia de Hyperswitch
- Hyperswitch - [BUG] : Los errores de deserialización de metadatos MCA deben ser 4xx
- Hyperswitch - [Característica]: [Zen] Sincronización con Hyperswitch Reference
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.
391 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- introducir soporte para bloques 'async gen'
- implementar RFC de reglas de captura de por vida de la edición 2024
- Soporte de plataforma 'RISCV32'
- añadir teeos std impl
- 'never_patterns': Analizar los brazos sin cuerpo
- 'rustc_symbol_mangling,rustc_interface,rustc_driver_impl': Aplicar 'rustc::p otential_query_instability' lint
- añadir información de la variante ADT a StableMIR y terminar de implementar 'TyKind::internal()'
- añadir 'deeply_normalize_for_diagnostics', usarlo en coherencia
- añadir comentario sobre mantener las banderas sincronizadas entre bootstrap.py y bootstrap.rs
- añadir compatibilidad con TLS emulado
- agregar evaluación de instancia y métodos para leer una asignación en StableMIR
- añadir lint contra comparaciones ambiguas de puntero ancho
- agregar método para obtener el tipo de un valor R en StableMIR
- añadir más intrínsecos a la plataforma SIMD
- añadir opciones de compilación segura
- añadir soporte para 'gen fn'
- Agregar soporte para hacer que las características de la biblioteca sean internas
- Se ha añadido una sugerencia sombreada para la superposición de tipos asociados
- evitar añadir funciones internas a 'symbols.o'
- evite instanciar infer vars con infer
- cambiar la captura previa para evitar el interbloqueo
- Evaluación en tiempo de compilación: detectar escrituras a través de punteros inmutables
- Cobertura: Sé más estricto con lo que cuenta como una "macro visible"
- Cobertura: Fusionar intervalos refinados en una pasada final separada
- Cobertura: Simplificar la heurística para ignorar los intervalos de retorno 'async Fn'
- cobertura: use 'SpanMarker' para mejorar los intervalos de cobertura para las expresiones 'if!
- desduplicado para sugerencias duplicadas
- descartar intervalos no válidos en bloques externos
- No poner entre paréntesis la 'estructura' exterior iluminada dentro de los protectores de partido
- no incluir alcances de destrucción en THIR
- no imprima el parámetro del efecto anfitrión en pretty 'path_generic_args'
- no advertir que un patrón vacío es inalcanzable si no estamos seguros de que los datos sean válidos
- forzar 'must_use' en los tipos asociados y RPITIT que tienen un rasgo de uso obligatorio en los límites
- implementar explícitamente 'DynSync' y 'DynSend' para 'TyCtxt'
- corregir 'is_foreign_item' para la instancia StableMIR
- arreglar la comprobación de caída de const
- arreglar la recopilación in situ que no se reasigna cuando es necesario
- arreglar el ICE del analizador sintáctico al recuperar 'dyn'/'impl' después de 'for<...>'
- corrección: corrija el arg para el diagnóstico 'sugerir usar sintaxis de función asociada'
- generalizar el uso de LLD en bootstrap
- Generalizar: el identificador produce un error de verificación en los alias
- implementar el indicador del compilador '--env' (sin soporte para 'tracked_env')
- implementar 'repr(packed)' para 'repr(simd)'
- mejorar 'print_tts'
- interpretar: hacer accesible 'numeric_intrinsic' desde Miri
- Hacer que los generadores asíncronos se fusionen de forma predeterminada
- asegúrese de que 'panic_nounwind_fmt' aún se pueda insertar completamente (por ejemplo, para 'panic_immediate_abort)'
- solo verifique la referencia del rasgo principal para la seguridad del objeto
- bonitas referencias de rasgos 'Fn<(..., ...)>' con paréntesis (casi) siempre
- Privacidad: Visitar rasgo def id de proyecciones
- proporcionar contexto cuando no se puede llamar a '?' debido a 'Result<_, E>'
- reorganizar 'default_configuration' y 'CheckCfg::fill_well_known'
- Recurre a las referencias cuando se comparan los TYS para el diagnóstico
- eliminar 'PolyGenSig' ya que siempre es una carpeta ficticia
- eliminar la puerta de características 'precise_pointer_size_matching'
- Resolver enlaces de elementos asociados por espacio de nombres
- optimizar los cursores de flujo de datos MIR
- sugerencia estructurada de 'uso' sobre error de privacidad
- decirle a MirUsedCollector que las comprobaciones de alineación del puntero llaman a su símbolo de pánico
- sugerencia para definir el nombre de la macro después de 'macro_rules!'
- modificar la sugerencia '.clone()' para que funcione en más casos
- Modificar errores genéricos no cerrados
- limpiezas sin escape
- eleva el canonicalizador (nuevo solucionador) a 'rustc_next_trait_solver'
- use 'immediate_backend_type' cuando lea de una asignación const
- use los parámetros predeterminados hasta que los efectos se desazucaren
- Miri: arreglar prometiendo una alineación muy grande
- miri: fix x86 SSE4.1 ptestnzc
- Miri: mover algo de código intrínseco x86 a funciones auxiliares en 'shims::x86'
- miri: devuelve 'MAP_FAILED' cuando falla mmap
- stablize 'arc_unwrap_or_clone'
- add 'LinkedList::{retain,retain_mut}'
- simplificar por defecto para tuplas
- restore 'const PartialEq'
- dividir 'Vec::d edup_by' en 2 ciclos
- futuros: fillBuf: no igualar 'poll_fill_buf' dos veces
- futuros: 'FuturesOrdered': usa un índice de 64 bits
- futures: 'FuturesUnordered': corrige una implementación clara
- futuros: use 'cfg(target_has_atomic)' en objetivos sin ETS
- cargo: spec: Extend PackageIdSpec with source kind + git ref for unambigys specs
- cargo toml: no permitir la herencia de la condición de público de dependencia
- cargo toml: no permitir '[lints]' en espacios de trabajo virtuales
- cargo: schema: Eliminar la dependencia de los tipos de carga
- cargo: schemas: Pull out mod for proposed schemas package
- cargo: trim-paths: assert 'OSO' y 'SO' no pueden ser recortados
- cargo: evite escribir CACHEDIR. TAG si ya existe
- cargo: arreglar la finalización de bash en el directorio con espacios
- cargo: reasignar explícitamente el directorio actual usando '.'
- Cargo: Imprimir mensajes de RUSTC coloreados en Wincon
- cargo: limitar los lints de dependencias privadas exportadas a bibliotecas
- rustdoc-search: no tratar los nombres de tipos asociados como tipos
- rustdoc: No generar el encabezado "Campos" si no se muestra ningún campo
- rustdoc: Arreglar la visualización de características
- rustdoc: no escapar de las comillas en el cuerpo del texto
- rustdoc: eliminar el parámetro no utilizado 'reversed' de 'onEach(Lazy)'
- bindgen: support float16
- rustfmt: añadir el rasgo 'StyleEdition enum' y 'StyleEditionDefault'
- clippy: 'fix(ptr_as_ptr)': maneja 'std::p tr::null{_mut}'
- clippy: 'needless_borrows_for_generic_args': Maneja cuando el operando de campo impl Drop
- clippy: 'uninhabited_reference': nueva pelusa
- clippy: añadir una función para comprobar si los oprandos binarios no son triviales
- clippy: arreglar patrones 'is_from_proc_macro'
- Rust-analyzer: Compruebe si LHS también es un binexpr y use su RHS en Flip binexpr assist
- rust-analyzer: Recurso a la resolución del método en el acceso a campos no resueltos con el nombre del método coincidente
- rust-analyzer: añadir el diagnóstico 'trait_impl_reduntant_assoc_item'
- rust-analyzer: permite que los objetivos de navegación se dupliquen cuando el rango de enfoque se encuentra en el sitio de definición de macros
- rust-analyzer: soporte de args de formato implícito (¡hurra!)
- rust-analyzer: priorizar las sugerencias de importación basadas en el tipo esperado
- rust-analyzer: arreglar el cálculo de desplazamientos de WideChar en 'line-index'
- Rust-Analyzer: Arreglar el pánico con el cierre dentro de la matriz Len
- rust-analyzer: error en 'extract_function.rs'
- Rust-analyzer: no emita el diagnóstico de "elementos faltantes" para impls negativos
- rust-analyzer: no imprima trazas de retroceso de pánico proc-macro en los registros
- rust-analyzer: corrige la expansión 'concat_bytes!' que emite un identificador
- rust-analyzer: se corrige el error de finalización en 'format_args!' con plantilla no válida
- Rust-analyzer: Soluciona el pánico de diagnóstico al resolver en diferentes archivos debido a macros
- rust-analyzer: Se corrigió el árbol de elementos que bajaba 'pub(self)' a 'pub()'
- rust-analyzer: arreglar cwd ejecutable en Windows
- rust-analyzer: se corrige el mapeo descendente de tokens que es cuadrático
- Rust-analyzer: arreglar la función MIR, HIR y Eval de la vista que no funciona cuando el cursor está dentro de las macros
- rust-analyzer: inserte paréntesis de llamada fn solo si los paréntesis se insertan alrededor del nombre del campo
- Rust-analyzer: Hacer que la sugerencia de incrustación de gotas sea más legible
- rust-analyzer: resolver las referencias de tipo propio en la asistencia del método delegado
- Rust-Analyzer: Intervalos más pequeños para diagnósticos de campos y métodos no resueltos
- rust-analyzer: hacer accesible ParamLoweringMode
- rust-analyzer: consulta del bloque padre más cercano alrededor de la sugerencia a resolver
- rust-analyzer: reemplace 'doc_comments_and_attrs' por 'collect_attrs'
- rust-analyzer: show placeholder while run command gets runnables from server
- rustc-perf: agregar soporte para la evaluación comparativa del backend de código de Cranelift
Triaje realizado por @simulacrum
9358642..5701093
5 regresiones, 2 mejoras, 3 mixtas; 2 de ellos en rollups
69 comparaciones de artefactos realizadas en total
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
Cada semana, el equipo
- Ninguna RFC entró en el Período de Comentarios Final esta semana.
- [disposición: fusionar] Problema de seguimiento para 'Bound::map'
- [disposición: fusionar] Estabilizar THIR unsafeck
- [disposición: fusionar] Exhaustividad: revelar correctamente los tipos opacos
- [disposición: fusionar] Rechazar correctamente 'default' en elementos const libres
- [disposición: fusionar] Hacer que los ciclos inductivos en coherencia sean siempre ambiguos
- 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:
necesitan pruebas.
Eventos oxidados entre 2023-12-13 - 2024-01-10 🦀
- 14/12/2023 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 14/12/2023 | Virtual (Núremberg, DE) | Rust Nuremberg
- 17/12/2023 | Virtual (Tel Aviv, IL) | Expertos en código
- 18/12/2023 | Virtual (Múnich, DE) | Rust Munich
- 19/12/2023 | Virtual (Berlín, DE) | OpenTechSchool Berlín
- 19/12/2023 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 19/12/2023 | Virtual (Linz, AT) Rust Linz
- 20/12/2023 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 26/12/2023 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 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
- 16/12/2023 | Delhi, IN | Rust Delhi
- 14/12/2023 | Augsburgo, DE | Rust - Programación de sistemas modernos en Leipzig
- 14/12/2023 | Basilea, CH | Rust Basel
- 18/12/2023 | Múnich, DE + Virtual | Rust Munich
- 19/12/2023 | Heidelberg, DE | Elimina tus insectos y oxida tus motores
- 19/12/2023 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
- 27/12/2023 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 13/12/2023 | Chicago, IL, EE. UU. | Rust de plato profundo
- 14/12/2023 | Lehi, UT, EE. UU. | Rust de Utah
- 14/12/2023 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 15/12/2023 | Somerville, MA, EE. UU. | Reunión de Boston Rust
- 19/12/2023 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 27/12/2023 | Austin, TX, EE. UU. | Rust ATX
- 09/01/2024 | Minneapolis, MN, EE. UU. | Reunión de Rust en Minneapolis
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
Lamentablemente, la semana pasó sin una cita nominada.
¡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