Esta semana en Rust #24
¡Hola y bienvenidos a otro número de This Week in Rust!
Rust
¿Quieres que se mencione algo? Etiquétanos en @ThisWeekInRust en X (anteriormente 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.
- El compilador de Rust a .NET (backend) ahora puede compilar correctamente el "juego de adivinanzas" del libro de Rust
- Cattaca 1.0.0
- BugStalker v0.2.0 - depurador de Rust
- Cómo pasé 2 años construyendo mi propio motor de juego (Rust, WASM, WebGPU)
- Los tipos inconcebibles de Rust: cómo hacer que los autopréstamos sean seguros
- Hacer que los robots planifiquen más rápido con SIMD y Rust
- Aprendiendo Rust: Enhebrado desnudo
- 999 cajas de Rust en la pared
- Cómo compilar Rust más rápido
- Tamaño binario de Tock
- Geometría virtual en Bevy 0.14
- Construcción de datos antiguos desde cero
- Latencia en el borde con Rust/WebAssembly y Postgres: Parte 1, Parte 2
- [video] Desarrollo full-stack de una infraestructura de pagos B2B con Rust - con Florent Bécart
- [serie] Master Hexagonal Architecture in Rust: Anatomy of a Bad Rust Application
- Cómo construir un arnés de evaluación comparativa personalizado en Rust
- Del remitente al receptor: el enfoque de Rust para las transferencias de archivos locales
- Build with Naz - Manejo de errores de Rust con miette
El crate de esta semana es hydra, un marco de actores inspirado en Erlang/Elixir.
¡Gracias a DTZxPorter por la autosugerencia!
[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:
- No se emitieron convocatorias para pruebas esta semana.
- No se emitieron convocatorias para pruebas esta semana.
- No se emitieron convocatorias para pruebas esta semana.
necesitan pruebas.
Algunas de estas tareas también pueden tener mentores disponibles, visite la página de tareas para obtener más información.
Esta semana no se han presentado convocatorias de participación.
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas [aquí] directrices o a través de un PR a TWiR o poniéndote en contacto con X (anteriormente twitter) o Mastodon!
¿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.
- Computación científica en Rust 2024 | Cierra 14/06/2024 | En línea | Fecha del evento: 2024-07-17 - 2024-07-19
- Rust Ukraine 2024 | Cierra el 06/07/2024 | Online + Ucrania, Kiev | Fecha del evento: 2024-07-27
- Conf42 Rustlang 2024 | Cierra 2024-07-22 | En línea | Fecha del evento: 2024-08-22
Si usted es un organizador de eventos que espera ampliar el alcance de su evento, envíe un enlace al sitio web a través de un PR to TWiR o comunicándose con X (anteriormente twitter) o Mastodon!
Se presentaron 409 solicitudes de incorporación de cambios [fusionadas en la última semana][fusionadas]
- corrección: construir sobre haiku
- bloques externos inseguros
- permitir definiciones de mut estático con '#[linkage]'
- los cierres son recursivamente accesibles
- 'rustc_codegen_ssa': corrige el pánico 'get_rpath_relative_to_output' cuando lib solo contiene el nombre del archivo
- evitar errores de seguimiento si el número de parámetros genéricos ya no coincide
- convertir 'proc_macro_back_compat' lint en un error incondicional
- detectar estructuras de publicación nunca construidas y constantes asociadas no utilizadas
- detectar cuando el usuario está intentando crear un 'Iterador' de préstamos y dar una explicación personalizada
- añadir directamente la extensión en lugar de usar 'Path::with_extension'
- no sueltes el candidato 'Destamaño' en el modo de intercadisco
- no activar 'unsafe_op_in_unsafe_fn' para FNS seguros obsoletos
- no camines por los cuerpos de las constantes libres para la accesibilidad
- no advertir sobre los campos en la pelusa 'unreachable_pub'
- enable GVN for 'AggregateKind::RawPtr'
- arreglar ICE causado por ignorar EffectVars en la inferencia de tipos
- arreglar ICE debido a 'desenvolver' en 'probe_for_name_many'
- Mejorar la sugerencia de cambio de nombre para los nombres con guiones bajos iniciales
- interpretar: no hacer ICE en vectores SIMD rellenados que no sean pow2
- hacer cierres de descriptores de acceso TLS que devuelvan punteros
- hacer que la eliminación en LinkedList sea consciente del asignador
- hacer que html renderizado por rustdoc permita buscar identificador / alias que no esté en inglés
- marque el enlace indeterminado si el nombre de destino existe y no se obtiene
- Match ergonomics 2024: alinear la implementación con RFC
- orphanck (solucionador antiguo): Considere los tipos opacos para nunca cubrir los parámetros de tipo
- analizar atributos inseguros
- aumentar 'DEFAULT_MIN_STACK_SIZE' a al menos 64 KiB
- Resolver: Marcarlo como indeterminado si la importación única no tiene enlaces
- scalarInt: las discrepancias de tamaño son un error, no retrases el pánico
- establece 'has_unconstrained_ty_var' al generalizar alias en contextos bivariantes
- silenciar los errores de seguimiento directamente en función de los tipos de error y las regiones
- dividir smir 'Const' en 'TyConst' y 'MirConst'
- almacenar los tipos de argumentos 'ty::Expr' en 'ty::Expr'
- cuando 'deriva', tenga en cuenta HRTB en los campos 'BareFn'
- aventar candidatos de método privado en lugar de asumir que se aplicará cualquier candidato con el nombre correcto
- add 'SingleUseConsts' mir-opt pass
- Miri: 'simd_bitmask': error más agradable cuando la máscara es demasiado grande
- miri: 'simd_bitmask': funciona correctamente para tallas como 24
- miri: 'simd_select_bitmask': corregir el nombre intrínseco en error
- Miri: añadir soporte para 'pclmulqdq' intrínseco
- Miri: Que no cunda el pánico si el cómputo del tiempo se desborda
- miri: arreglar futex con gran tiempo de espera ICE
- Miri: Arreglar la etapa en la contribución
- estabilizar el orden de los MonoItems en las CGU y no permitir 'query_instability' lint por 'rustc_monomorphize'
- estabilizar 'Opción::take_if'
- estabilizar 'binary_heap_as_slice'
- estabilizar 'error_in_core'
- Permitir 'core_intrinsics' cuando está activado (RFC #2011)
- añadir función 'core::iter::chain'
- 'offset_of': permite (de forma inestable) tomar el desplazamiento de los campos de cola de corte
- añadir constante 'FRAC_1_SQRT_2PI' a F16/F32/F64/F128
- añadir 'size_of' y 'size_of_val' y 'align_of' y 'align_of_val' al preludio
- hashbrown: feat: borsh serde
- SIMD portátil: implementa swizzles especiales para máscaras y elimina {'to', 'from'}'_bitmask_vector'
- regex: escape de bytes UTF-8 no válidos en la salida de depuración para 'Match'
- pelusas de carga: Añadir 'unknown_lints' a la lista de pelusas
- cargo toml: Convierte en errores las advertencias de que los archivos 'license' y 'readme' no existen
- cargo toml: eliminar el soporte de la clave 'lib.plugin' y convertirlo en advertencia
- cargo: el ejemplo proc-macro de DEP ya no afecta a la resolución de características
- cargo: eliminar '__CARGO_GITOXIDE_DISABLE_LIST_FILES' env var
- cargo: el uso de '--release/debug' y '--profile' juntos se convierte en un error
- cargo: rename --out-dir a --artifact-dir
- rustdoc-search: use un nombre en minúsculas, no normalizado para la búsqueda de tipos
- rustdoc: añadir soporte para --remap-path-prefix
- rustdoc: incluir comas finales en las declaraciones de funciones envueltas
- clippy: 'lint_groups_priority': ignora las pelusas y los grupos en el mismo nivel
- clippy: 'match_same_arms': añadir un caso de prueba con tiempos de vida
- clippy: 'overly_complex_bool_expr': Corregir falso positivo en el tipo nunca
- clippy: añadir pelusa 'needless_maybe_sized'
- clippy: añadir paréntesis obligatorios alrededor del receptor del método
- clippy: desduplicado 'nonminimal_bool_methods' diagnostica
- clippy: no peluques los bloques en los cierres para 'blocks_in_conditions'
- clippy: arreglar 'to_string_in_format_args' con el receptor de llamadas macro
- clippy: corregir falso positivo para 'needless_character_iteration' lint
- clippy: maneja correctamente los efectos const heredados del padre en 'type_certainty'
- clippy: lint 'manual_unwrap_or_default' para 'Resultado' también
- clippy: hacer cierres de visitas 'for_each_expr' por defecto, cambiar el nombre de la versión anterior a 'for_each_expr_without_closures'
- clippy: solo ejecuta 'suboptimal_flops' en llamadas a métodos inherentes
- Rust-Analyzer: Agrega un modificador de preferencias para cajas locales del espacio de trabajo cuando se usa la importación automática
- Rust-analyzer: Agregar información de versión al elemento de la barra de estado
- rust-analyzer: se cambió 'package.json' para que la configuración de la extensión vscode tenga submenús
- rust-analyzer: configuración basada en TOML para rust-analyzer
- Rust-Analyzer: Calcular diagnósticos nativos en paralelo
- Rust-analyzer: Ocultar símbolos de doble subrayado de la búsqueda de símbolos
- Rust-analyzer: No resuelve el preludio dentro de los módulos de bloques
- rust-analyzer: asegúrese de que el padre de un 'SourceRoot' no puede ser él mismo
- rust-analyzer: arreglar los marcadores generados que no se pueden parchear en 'package.json'
- Rust-analyzer: Se corrige el cambio de nombre de las importaciones de artículos extranjeros que tocan fuentes extranjeras
- Rust-analyzer: resalte los archivos desvinculados de forma coherente con los archivos inactivos
- Rust-analyzer: formato incorrecto de las acciones de desplazamiento
- rust-analyzer: eliminar la caché de análisis adicional de Semantics nuevamente
- rust-analyzer: intente almacenar en caché las llamadas de macros de forma más agresiva en Semantics
optimizando mejor los intervalos.
Triaje realizado por @kobzol
1d52972d.. b5b13568
Resumen:
(instrucciones:u) | media | Gama | Recuento |
---|---|---|---|
Regresiones ❌ (primaria) | 0.6% | [0,2%, 2,7%] | 105 |
Regresiones ❌ (secundaria) | 1.0% | [0,1%, 6,9%] | 74 |
Mejoras ✅ (primaria) | -0,5% | [-1,0%, -0,2%] | 20 |
Mejoras ✅ (secundaria) | -1,4% | [-8,8%, -0,2%] | 32 |
Todos ❌✅ (primario) | 0.5% | [-1,0%, 2,7%] | 125 |
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
Cada semana, el equipo
- [disposición: fusionar] UnsafePinned: permitir alias de referencias mutables ancladas
- [disposición: posponer] RFC: hacer que Cargo incruste versiones de dependencia en el binario compilado
- [disposición: cerrar] ¿Deberíamos permitir StorageLive en una configuración local activa?
- [disposición: fusionar] Problema de seguimiento para 'hint::assert_unchecked'
- [disposición: fusionar] Recopilar los límites de elementos relevantes de las cláusulas de rasgos para proyecciones rígidas anidadas
- [disposición: cerrar] impl conflictivo desde Nightly-2024-05-01
- [disposición: fusionar] Comportamiento del documento de create_dir_all ruta vacía escrita
- [disposición: fusionar] Incluir vcs_info incluso si el espacio de trabajo está sucio
- Ninguna RFC de equipo lingüístico entró en el período de comentarios finales esta semana.
- 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.
- [actualizado] corregir enlaces de RFC de seguridad de E/S
- [nuevo] RFC: Notación de tipo de retorno
Eventos oxidados entre 2024-06-12 - 2024-07-10 🦀
- 12/06/2024 | Virtual (Cardiff, Reino Unido)| Rust y C++ Cardiff
- 13/06/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 13/06/2024 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 16/06/2024 | Virtual (Tel Aviv, IL) | Expertos en código
- 18/06/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 19/06/2024 | Híbrido - Virtual y Presencial (Vancouver, BC, CA) | Rust de Vancouver
- 20/06/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 25/06/2024 | Virtual (Dallas, TX, EE. UU.)| Grupo de usuarios de Dallas Rust
- 25/06/2024 | Virtual (Tel Aviv, IL) | Expertos en código
- 27/06/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 02/07/2024 | Virtual (Búfalo, NY) | Encuentro de Buffalo Rust
- 03/07/2024 | Virtual | Capacitación 4 Programadores LLC
- 03/07/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 04/07/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 06/07/2024 | Virtual (Kampala, UG) | Círculo de Rust Kampala
- 09/07/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 10/07/2024 | Virtual | Centro de Investigación Electrónica
- 22/06/2024 | Bangalore, IN | Rust Bangalore
- 30/06/2024 | Kioto, JP | Rust de Kioto
- 12/06/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 18/06/2024 | Fráncfort del Meno, DE | Reunión de Rust Frankfurt
- 19/06/2024 - 24/06/2024 | Zúrich, CH | RustFest Zürich
- 20/06/2024 | Aarhus, Dinamarca | Rust Aarhus
- 25/06/2024 | Gdańsk, PL | Rust Gdansk
- 27/06/2024 | Berlín, DE | Rust Berlin
- 27/06/2024 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 12/06/2024 | Detroit, MI, EE. UU. | Rust de Detroit
- 13/06/2024 | Spokane, WA, EE. UU. | Rust de Spokane
- 14/06/2024 | Spokane, WA, EE. UU. | Rust de Spokane
- 17/06/2024 | Minneapolis, MN Estados Unidos | Reunión de Rust en Minneapolis
- 18/06/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 19/06/2024 | Híbrido - Vancouver, Columbia Británica, CA | Rust de Vancouver
- 20/06/2024 | Seattle, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 24/06/2024 | Somerville, MA, EE. UU. | Reunión de Boston Rust
- 26/06/2024 | Austin, TX, EE. UU. | ATC de Rust
- 27/06/2024 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 05/07/2024 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 14/06/2024 | Melbourne, VIC, AU | Rust Melbourne
- 20/06/2024 | Auckland, Nueva Zelanda | Rust AKL
- 25/06/2024 | Canberra, ACt, AU | Grupo de usuarios de Canberra Rust (CRUG)
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 Who's Hiring en r/rust
me gusta lo explícito pero odio el ruido...
– dlevac discutiendo el manejo de errores en /r/golang
¡Gracias a robin 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