Esta semana en Rust #19
¡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.
- Resultados de la Encuesta Anual de Roya 2023
- Rust participa en Google Summer of Code 2024
- Selecciones de Representantes de marzo del Consejo de Liderazgo
- Reserve la fecha: RustConf 2024 – 10-13 de septiembre
- El segundo informe de la iniciativa de seguridad detalla los avances de seguridad de Rust
- Bevy 0.13
- Bevy XPBD 0.4: Agnosticismo del colisionador, reelaboración de capas y Bevy 0.13
- uv: Empaquetado de Python en Rust
- git-cliff: ¿Qué hay de nuevo en la versión 2.0.0? (generador de registro de cambios altamente personalizable)
- rustc_codegen_gcc: Informe de Progreso #30
- Retrospectiva de actualizaciones de características de RustRover Q4 2023
- registro de cambios de rust-analyzer #221
- Anunciando Stabby 3.0
- argmin_testfunctions 0.2.0: funciones de prueba para problemas de optimización en Rust y Python
- vscode-rustup liberado: interfaz con rustup como extensión VSCode
- Publicado OpenPGP-card-tools 0.10.0. El proyecto proporciona la herramienta de línea de comandos 'oct' para inspeccionar, configurar y usar dispositivos de tarjeta OpenPGP como Nitrokey o Yubikey.
- Cliente de Rust para Timeplus Proton SQL Streaming
- FuturosDesordenados y el orden de los futuros
- Herramientas de Rust: 8 herramientas que aumentarán su productividad
- Escribiendo mi modelo mental de inseguridad
- ¿Cómo puede Rust ser tan rápido en los puntos de referencia de TechEmpower Web Framework?
- De 1 s a 4 ms
- Traducción de datos de OpenStreetMap a HTML5 Canvas con Rust y WebAssembly
- ¡macros_rule!
- Implementación de la autenticación JWT en Rust
- Implementación de Axum en Lambda y ECS, mediante el adaptador web de Lambda
- Interoperabilidad de Rust/C++ Parte 3 - Cxx
- [FR] Les closures en Rust
- [video] Safe Rust NO ES SEGURO!? (CVE-RS)
El crate de esta semana es kind, una caja auxiliar para UUID con tipo.
¡Gracias a Denys Séguret por la autosugestión!
[Por favor, envíen sus sugerencias y votos para la próxima semana] submit_crate!
Las RFC se beneficiarían de las pruebas de usuario antes de seguir adelante:
necesitan pruebas.
Algunas de estas tareas también pueden tener mentores disponibles, visite la página de tareas para obtener más información.
- Ockam - Resaltado de sintaxis para bloques de código cercados, en la salida de ayuda de comandos, en Linux funciona
- Ockam - Apagar el Trabajador/Procesador si falla la inicialización
- Ockam - Se ha mejorado la salida del ticket del proyecto ockam y la información no es opaca
- Hyperswitch - [FEATURE] : añadir el campo 'offset' a la lista de disputas
- Hyperswitch - [FEATURE]: añadir el campo 'offset' a la lista de mandatos
- Hyperswitch - [CARACTERÍSTICA]: agregar soporte de paginación para la lista de clientes
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.
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 a través de un PR a TWiR.
508 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- Habilitar implícitamente EVEX512 si AVX512 está habilitado
- 'const_mut_refs': permitir punteros mutables a estáticas
- 'macro_rules': Conserva todos los intervalos de metavariables en una tabla lateral global
- agregar APIs para obtener elementos externos
- añadir la opción de configuración 'rust.frame-pointers'
- añadir más comprobaciones de 'unnamed_fields' durante el análisis HIR
- permitir que los visitantes AST y HIR devuelvan 'ControlFlow'
- permitir referencias mutables en valores const cuando apuntan a que no hay memoria
- Evalúe siempre las constantes libres y las estáticas, incluso si ocurrieron errores anteriores
- evitar un ICE en el diagnóstico
- tener menos confianza cuando no se comprueba la seguridad del objeto de la sugerencia 'dyn'
- comprobar la firma de llamada normalizada para WF en mir typeck
- Considere los superrasgos auto-rasgos de la referencia de rasgo principal en dyn upcasting
- continuar compilando después de errores 'check_mod_type_wf'
- continuar la compilación incluso si fallan las comprobaciones impl inherentes
- continuar informando de los errores restantes en lugar de descartarlos silenciosamente
- detectar cuándo se puede eliminar la llamada al método en el argumento para cumplir con el enlace de rasgo fallido
- arreglar un ICE en la pelusa de recursividad
- ignorar los tipos sin tamaño al intentar determinar el tamaño del tipo original
- hacer que 'ConstPropLint' lint se ejecute en promocionados
- mejorar los errores de tipo de rasgo 'asíncrono Fn'
- tratar adecuadamente los tipos de alias débiles como tipos propios de impls
- cambiar el nombre de 'ConstPropLint' a 'KnownPanicsLint'
- almacenar inicializadores estáticos en metadatos en lugar del MIR de estática
- sugerir 'into_iter()' cuando se llama al método 'Iterator' en 'impl IntoIterator'
- desencadenar 'unsafe_code' lint en las invocaciones de 'global_asm'
- Usar cumplimiento en la siguiente coherencia del solucionador de rasgos
- miri: implementar intrínsecos x86 AVX
- optimizar el manejo de 'delayed_bug'
- Optimizar los protectores contra venenos cuando se construye STD con panic=abort
- revisión 'Diagnostic' y 'DiagnosticBuilder'
- implementar 'Instant' para UEFI
- implementar 'Default' para 'AsciiChar'
- almacenar 'core::str::CharSearcher::utf8_size' como u8
- hacer que 'Archivo::read_to_end' sea menos especial
- implementar los rasgos 'NonZero' genéricamente
- hacer genérico 'NonZero::get'
- hacer que 'io::BorrowedCursor::advance' sea seguro
- make 'is_nonoverlapping #[inline]'
- especializarse en aplanar iteradores con un solo elemento interno
- especializarse en algunos métodos de 'io::Chain'
- renombrar 'MaybeUninit::write_slice'
- no use 'mem::zeroed' en 'vec::IntoIter'
- optimizar 'VecDeque::d rain' para rangos (semi)abiertos
- arreglar el 'Cursor::remove_{next,prev}' de BTreeMap
- añadir 'Future' y 'IntoFuture' al preludio de 2024
- hashbrown: ajustes en línea a 'HashTable'
- hashbrown: make 'HashSet::insert' return OccupiedEntry
- codegen_gcc: maneja correctamente '--use-system-gcc'
- codegen_gcc: implementar dummy emit=llvm-ir
- CodeGen_gcc: usa la destrucción de Rust predeterminada
- codegen_cranelift: arreglar 'simd_select_bitmask' en sistemas big-endian
- CodeGen_cranelift: Se corrigió la verificación de hash de descarga en sistemas big-endian
- cargo add: Asegúrese de que los usuarios sepan que se está creando una función
- cargo add: Eliminar período inconsistente
- prueba de carga: Sugerir '--' para los argumentos libtest
- cargo: respete 'rust-version' al generar lockfile
- Rustdoc: Maneja correctamente los nombres largos de las cajas en el móvil
- Rustdoc: Reexportaciones entre cajas: renderizar correctamente los parámetros enlazados en tiempo de ejecución en orden de origen, incluso si los parámetros enlazados en tiempo de ejecución están presentes
- Rustdoc: Se corrigió el manejo de la función 'doc_auto_cfg' para los atributos CFG en la reexportación de globos
- rustfmt: corregir error al intentar formatear UTF8 no normalizado
- formatear los límites de rasgos 'asíncronos' en rustfmt
- añadir clippy a la lista conocida 'cfg'
- clippy: añadir nueva pelusa 'deprecated_clippy_cfg_attr'
- clippy: 'case_sensitive_file_extension_comparisons': No se activa en extensiones de solo dígitos
- clippy: 'implied_bounds_in_impls': evitar la pelusa en tys asociados superpuestos
- clippy: 'incompatible_msrv': permite expresiones que provienen de la eliminación de azúcar
- clippy: 'new_without_default': Ahora emite en const fns
- clippy: permitir literales negativos en 'redundant_guards'
- clippy: comprobar los elementos de rasgo en 'min_ident_chars'
- clippy: manejo de conflictos de salida de prueba predeterminado a error
- clippy: asegúrese de que la sintaxis de ASM detecte 'global_asm!' y 'asm!' solo en arquitecturas x86
- clippy: añadir comprobación de protecciones idénticas en lint 'match_same_arms'
- clippy: hacer que '#[permitir]' funcione en el campo para 'pub_underscore_fields'
- clippy: ignorar elementos importados en 'min_ident_chars'
- rust-analyzer: activar en el nivel superior los archivos 'Cargo.toml' y 'rust-project.json'
- rust-analyzer: deduplicar referencias cuando algunas de ellas están en expansiones de macros
- rust-analyzer: crear alias al cambiar el nombre de una importación
- Rust-analyzer: agregue un diagnóstico de permiso no exhaustivo
- Rust-Analyzer: agregar diagnóstico de identidad no resuelta
- rust-analyzer: admite múltiples tabulaciones para finalizaciones en VSCode
- rust-analyzer: se ha añadido soporte básico para las llamadas 'become' expr/tail
- rust-analyzer: no añadir '' antes de '{'
- rust-analyzer: no mostrar discrepancias de tipo para discrepancias '{unknown}' a discrepancias que no son '{desconocidas}'
- rust-analyzer: corrige el diagnóstico de "devolución innecesaria" para las declaraciones de elementos finales
- rust-analyzer: arreglar los scripts de compilación que no se reconstruyen en algunas ocasiones
- rust-analyzer: corrige falsos positivos para el diagnóstico de "otra cosa innecesaria"
- rust-analyzer: arreglar los fragmentos que se colocan hacia la izquierda de donde deberían estar
- rust-analyzer: mejora la recuperación en '=' para el inicializador y el patrón del campo de registro
- rust-analyzer: solo rasgos completos en 'impl .. for'
- Rust-Analyzer: Colocar fragmentos correctamente en las ayudas de edición múltiple
- rust-analyzer: servidor que cuelga en la tarea de script de compilación
consultas (PR #120919) y otras pequeñas mejoras de un paquete acumulativo (PR #121055).
Triaje realizado por @pnkfelix
74c3f5a1.. 5af21304
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
Cada semana, el equipo
- [Disposición: Fusionar] Cambiar la equidad para que los aglutinantes no dependan de la subtipificación
- [disposición: fusionar] Implementar RFC 3373: Evitar definiciones no locales en funciones
- [disposición: fusionar] Problema de seguimiento para 'waker_getters'
- [disposición: fusionar] [Estabilizar el espacio de nombres '#[diagnóstico]' y el atributo '#[diagnóstico::on_unimplemented]']](https://github.com/rust-lang/rust/pull/119888)
- [disposición: fusionar] Problema de seguimiento para cfg-target-abi
- [disposición: fusionar] hacer que las consts no tipificadas por PartialEq como patrones sean un error grave
- [disposición: cerrar] Permitir la conversión de ?-desde 'Resultado<T, E>' en funciones que devuelven 'Opción<Resultado<T, E>>'
- [disposición: fusionar] Añadir impl de lectura para &stdin
- [disposición: fusionar] Crear 'barrera::nuevo()' const
- [disposición: cerrar] Implementar 'Futuro' para 'Opción