Esta semana en Rust #9
¡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.
- Vida útil temporal de Rust y "super let"
- Detrás de escena del formato de cadenas de Rust: ¡format_args! ()
- Perfilar programas de Rust de la manera más fácil
- Tres problemas de fijación
- ¿¡Rust std fs más lento que Python!? ¡No, es hardware!
- Leafpipe - Convirtiendo montones y montones de material audiovisual en bonitos estímulos
- Por qué es importante la seguridad de los tipos
- "Rustificación" sin servidor: Aumente el rendimiento de AWS Lambda con Rust - AWS re:Invent talk
- [video] Acelerando el código de Rust con benchmarks y flamegraphs
- Hacer una ruta segura de Axum
- Funciones divergentes - funciones que nunca regresan
- Primeros pasos con Loco, el framework web unipersonal para Rust
- Construyendo un interpolador de hipercubo (en Rust)
- Embajada en ESP: GPIO
- [video] Axum 0.6 a 0.7 en 5 pasos rápidos
El crate de esta semana es symbols, una utilidad para crear rápidamente macros proc para solidificar las tablas de la base de datos en enumeraciones que permiten comprobaciones de claves externas en tiempo de compilación.
¡Gracias a Marco Napetti 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.
- Ockam - Biblioteca - Validar estructuras CBOR de acuerdo con el esquema cddl para 'nodos/models' misc
- Ockam - Comando - refactorizar para usar interfaces tipadas para implementar comandos para 'nodos'
- Ockam - Biblioteca - Adelgazar el 'NodeManagerWorker' para 'nodo / estado del nodo'
- zerocopy - Probar la salida de zerocopy-derive
- 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 - Función - Mediodía - Sincronización con Referencia de Hyperswitch
- Hyperswitch - Función - Payme - Referencia de sincronización con Hyperswitch
- Hyperswitch - Error - Los errores de deserialización de metadatos MCA deben ser 4xx
- Hyperswitch - Función - Zen - Referencia de sincronización con Hyperswitch
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.
369 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- add '-Zfunction-return={keep,thunk-extern}' option
- cuenta por '!' brazo en cola 'match' expr
- añadir puerta de función 'never_patterns'
- añadir 'pretty_terminator' a bastante estable-mir
- añadir una suposición de que el índice es entrante a 'slice::get_unchecked'
- 'rustc_span': Usar la distancia de edición correcta para las sugerencias
- se agregaron métodos de rasgo de enlazador 'linker_arg(s)' para link-arg para que tengan el prefijo "-Wl", para argumentos de enlazador similares a cc y no textualmente
- Permitir la configuración de etiquetas 'RLA' a través de 'rustbot'
- evitar expansiones de cierre por registro
- 'generic_const_exprs': sugerir agregar la función, no usarla
- cambiar la representación de 'SwitchTarget' en StableMIR
- 'rustc_hir_typeck': Arreglar ICE al sondear la alternativa de función no ASCII
- constProp: eliminar correctamente const si se le asigna un valor desconocido
- Cobertura: omitir intervalos que no se pueden desexpandir de nuevo al cuerpo de la función
- Tamaño del código de corte para hash de características
- detectar cortes similares a los de Python y sugerir cómo solucionarlo
- detectar y rechazar sugerencias 'repr(Rust)' malformadas
- dispose 'llvm::TargetMachines' antes de que se elimine 'llvm::Context'
- no sugiera '!' para la ruta en la llamada a la función si tiene args genéricos
- devuelve ansiosamente 'ExprKind::Err' en 'yield'/'await' en un contexto de corrutina incorrecto
- efectos: ejecuta 'enforce_context_effects' para todas las llamadas a métodos
- explique una buena razón por la que LocalValue no almacena el tipo de local
- arreglar ICE: 'fn_arg_names: elemento inesperado DefId(..) «
- corrige los argumentos de 'PartialEq' cuando '#[const_trait]' está habilitado
- arreglar un ICE cuando un valtree no se evaluó
- arreglar el ICE del analizador de attrs
- Se soluciona el problema de sugerir desenvolver/esperar para el campo abreviado
- dar un mensaje de error amigable para el desarrollo para perfiles de configuración incorrectos
- Controlar el límite de recursividad para subtipos y predicados bien formados
- implementar el estacionamiento de subprocesos para XOUS
- Errores más específicos cuando los tipos externos terminan en lugares donde no deberían
- Nuevo solucionador: Mejorar las anotaciones de los instrumentos
- en Fn arg discrepancia para una ruta fn, sugerir un cierre
- pase + función de atómicos forzados para riscv32{i,im,imc}-unknown-none-elf
- realizar optimizaciones de LTO con wasm-ld + -Clinker-plugin-lto
- Imprimir lista de características de destino faltantes al llamar a una función con características de destino fuera de un bloque no seguro
- proporcionar una sugerencia estructurada para la discordancia de tipos en el bucle
- eliminar la suposición memcpy-on-equal-ptrs
- reemplace 'once_cell::sync::OnceCell' con std 'OnceLock'
- Informar de errores en el servidor de trabajo heredados a través de variables de entorno
- restaurar '#! [no_builtins]' en la LTO
- [restringir qué símbolos se pueden usar en cadenas de formato '#[diagnostic::on_unimplemented]']](https://github.com/rust-lang/rust/pull/118495)
- rustc: armonizar 'DefKind' y 'DefPathData'
- simplificar la sangría en la impresión THIR
- mensaje de ajuste en ADT con construcción de campos privados
- Ajustar la recuperación de análisis sintáctico de enumeraciones, para exprs y patrones de brazo de coincidencia
- advertir contra el uso de intrínsecos que se salgan del alcance de nuestro modelo de memoria
- añadir más información a la instancia de StableMIR
- codegen, miri: se corrige el cálculo del desplazamiento de un campo sin tamaño en una 'estructura' empaquetada
- Miri: Admite una alineación 'prometedora' para la verificación de alineación simbólica
- miri: Máscaras de bits SIMD: use 'redondear a múltiplo de 8' en lugar de 'sujetar al menos a 8'
- miri: añadir nuevos intrínsecos SIMD
- miri: eliminar la heurística de GC de préstamos apilados
- añadir también 'is_empty' a const raw slices
- mover las API de procedencia expuesta a una puerta de características separada
- estabilizar literales de cadena C
- agregar API de subcadena para 'OsStr'
- optimize 'str::iter::Chars::advance_by'
- añadir 'track_caller' para operaciones aritivas
- expandir la especialización de iteración in situ a Flatten, FlatMap y ArrayChunks
- solucionador de carga: Quitar prioridad a la versión sin Rust en el solucionador de MSRV
- solucionador de carga: Eliminar el manejo de errores de deps públicos no utilizados
- cargo toml: Desacoplar la lógica del esquema
- cargo: añadir '--public' para 'cargo add'
- Cargo: añadir más comentarios en el documento para los cambios en GC
- cargo: reorder los indicadores '--remap-path-prefix' para '-Zbuild-std'
- cargo: se corrigió que la desinstalación de un binario en ejecución falló en Windows
- Cargo: corrige que la visualización del recuento de errores es diferente cuando solo queda un error
- cargo: haz que cargo agregue --optional ''