Esta semana en Rust #22
¡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.
¿Quieres participar? 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.
- Motor de juego Fyrox 0.34
- El nuevo motor de ejecución de Wasmi - Más rápido que nunca
- iroh@0.17.0 - Todo está un poco mejor
- venndb@0.5.0 - admite opciones de filtro multidimensionales para filtrar en grupo
- Diesel: Estudio de caso de evaluación comparativa continua
- Visiones del futuro: verificación formal en Rust
- Evitar la dependencia excesiva de los canales 'mpsc' en Rust
- Cómo migramos nuestro analizador estático de Java a Rust
- Construyendo RAG Agentic con Rust, Qdrant y OpenAI
- Hacer un chat seguro en Rust
- Análisis de variables de entorno estructurado en Rust
- Tipos y código autodocumentado en Rust
- Iggy.rs — un año de construcción de la transmisión de mensajes
- Cuando la asignación de memoria no utilizada aumenta el rendimiento 2 veces
- Intervalos de sondeo atómicos para cargas de trabajo altamente simultáneas
- Domar sumas de coma flotante
- Send & Mutex - Conceptos erróneos sobre Send
- Reconstruyendo la sociedad del consumidor en Rust
- Informe sobre la discusión de genéricos variádicos en RustNL.
- Cómo usar ChatGPT con Rust
- [video] Programming Education: Tailoring Tools and Techniques for Rust (Will Crichton en la serie de transmisión en vivo de RustRover)
El crate de esta semana es pulso, un simple recopilador de métricas para TCP/IP.
¡Gracias a guapodero 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:
- 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.
- zerocopy - ¿La caché de CI no incluye las herramientas de carga instaladas?
- zerocopy - Debug GitHub Actions issue
- zerocopy - Error de paso 'jq' del documento de carga
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.
- Rust Argentina junio 2024 | Cierra el 31/05/2024 | Buenos Aires, AR | Fecha del evento: 2024-06-04
- EuroRust 2024 | Cierra el 03/06/2024 | Viena, Austria y en línea | Fecha del evento: 2024-10-10
- 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!
397 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- Validación MIR: asegúrese de que la proyección descendente vaya seguida de una proyección de campo
- en realidad usa TAIT en lugar de emularlo
- permitir coercitar funciones cuya firma difiere en tipos opacos en su ámbito de definición en un tipo de puntero de función compartida
- permitir errores de const eval de tiempo de monomorfización si la causa es un problema de diseño de tipos
- un cierre asíncrono puede implementar 'FnMut'/'Fn' si no tiene autopréstamos
- detectar estructuras no utilizadas que implementan rasgos privados
- No permitir la conversión con macro reforzada final en let-else
- No continúes sondeando el método si en la ambigüedad de los resultados de sugerencia y autoderef
- No hacer detección de CC para objetivos sintéticos
- No monomorfonice ansiosamente la caída de tipos que son imposibles de instanciar
- no sugiera agregar los CFG inesperados al propio script de compilación
- Eliminar restricciones de región para objetivos ambiguos
- Salir del proceso poco tiempo después de ingresar a nuestro manejador Ctrl-C
- expandir 'for_loops_over_fallibles' lint a lint en falibles detrás de referencias
- f32: usar constantes en lugar de reasignar un valor ficticio como PI
- falla relacionando constantes de diferentes tipos
- corregir la sugerencia de error de OutsideLoop: agregar la etiqueta ''bloque' para el bloque ''si'
- arreglar la pelusa 'unexpected_cfgs' en std
- Se corrigió una sugerencia incorrecta para las duraciones de HRTB no declaradas en las cláusulas where
- corregir el análisis sintáctico de puntos y comas colocados erróneamente
- correcciones de seguimiento a 'report_return_mismatched_types'
- forzar la corrutina interna de un cierre asíncrono para que se 'mueva' si el cierre externo es 'move' y 'FnOnce'
- handle 'ReVar' en 'note_and_explain_region'
- asegúrese de que la resolución del método coincida con 'note_source_of_type_mismatch_constraint'
- mover '#[do_not_recommend]' al espacio de nombres '#[diagnóstico]'
- solo permite estáticas inmutables con '#[linkage]'
- solo suprimir el error de binop a favor de la sugerencia de punto y coma si estamos en una declaración de asignación
- pánico directamente en 'Argumentos::nuevo*' en lugar de repetir
- tipos de patrones: Prohibir argumentos genéricos en parámetros const
- tratar adecuadamente los tipos faltantes/marcadores de posición dentro de los GAC
- relajar las restricciones sobre desinfectantes múltiples
- eliminar 'DefId' de 'EarlyParamRegion'
- eliminar el formato del árbol de pruebas, hacerlo superficial
- cambiar el nombre de 'FrameworkOnlyWindows' a 'RawDylibOnlyWindows'
- resolver los predicados primarios de la const anónima para dirigir el padre en lugar del padre de opaque
- dejar de SRoA 'DynMetadata' en MIR
- soporta variádicas de C23 sin un parámetro nombrado
- etiqueta más cosas con 'WG-trait-system-refactor'
- convertir las pelusas restantes no estructurales en patrones en errores duros
- use 'Backtrace::force_capture' en lugar de 'Backtrace::capture' en 'rustc_log'
- validar la restricción de diseño especial en 'DynMetadata'
- advertencia (o error) cuando se hace referencia al ctor 'Self' del elemento externo en el elemento anidado interno
- wrap Context.ext en AssertUnwindSafe
- interpretar: hacer que los binops desbordados sean binops normales
- Miri: Añade algunas características de Tokio
- miri: corrección de errores 'MiriAllocBytes' para garantizar diferentes direcciones
- Miri: Refactorizar completamente la forma en que gestionamos el bloqueo y desbloqueo de hilos
- perf: Retrasar la construcción de estructuras tempranas de diagnóstico de lint
- estabilizar 'LazyCell' y 'LazyLock'
- estabilizar 'div_duration'
- estabilizar 'slice_flatten'
- reescribir el almacenamiento local de subprocesos nativos
- reescribir TLS en plataformas sin hilos
- simplificar las configuraciones locales de subprocesos basadas en claves
- añadir la bandera de la función de la biblioteca principal de opt-for-size
- Utilice siempre el recuento general de caracteres de mayúsculas y minúsculas con 'optimize_for_size'
- añadir 'IntoIterator' para 'Box<[T]>' + pelusas específicas de la edición 2024
- añadir 'assert_unsafe_precondition' a 'unchecked_{add,sub,neg,mul,shl,shr}' métodos
- añadir una ruta rápida a 'Depurar' ASCII '&str'
- añadir la implicación manual de 'Sync' para 'ReentrantLockGuard'
- arreglar 'VecDeque::shrink_to' UB cuando 'handle_alloc_error' se desenrolla
- [simplificar un poco las comprobaciones ub 'unchecked_sh[LR]']](https://github.com/rust-lang/rust/pull/125559)
- menos llamadas al sistema para la sonda 'copy_file_range'
- hacer 'abrazadera' en línea
- corregir 'c_char' en AIX
- pánico si 'PathBuf::set_extension' agregaría un separador de ruta
- codegen_llvm: agrega soporte para escribir código de bits de resumen
- codegen_gcc: simd: implementar intrínsecos de procedencia del puntero
- rust-lld: reserva a la raíz del sistema de rustc si no hay ninguna ruta al enlazador en la raíz del sistema de destino
- enlazador autónomo: reintente enlazar sin '-fuse-ld=lld' en CCs que no lo soportan
- Cargo: añadir más trazas de alto nivel
- cargo: obtener confirmaciones específicas incluso si falla la ruta rápida de GitHub
- cargo: corrección: comprobar si Rev es SHA de confirmación completa para la ruta rápida de GitHub
- cargo: fix: eliminar el directorio de enlaces simbólicos en Windows
- cargo: mejorar la descripción del error al deserializar el campo parcial 'struct'
- Cargo: Prueba: Cambiar de 'Drop' a 'Let _' debido al cambio nocturno de Rustc
- Cargo: Mejora GIX de 0.62 a 0.63
- cargo: use 'i32' en lugar de 'usize' como "entero predeterminado" en la plantilla de biblioteca
- clippy: 'significant_drop_in_scrutinee': Activa la pelusa solo si la vida útil permite una caída significativa temprana
- clippy: añadir nueva pelusa 'while_float'
- clippy: añadir paréntesis a la sugerencia de 'let_and_return'
- clippy: corrección de errores: error del mensaje 'numbered_fields' de lint
- clippy: maneja correctamente los paréntesis de cierre en 'missing_backticks' doc lint
- clippy: Solución rápida para URLs desnudas
- clippy: corrige la interacción 'unnecessary_to_owned' con la expansión de macros
- clippy: cumple con las expectativas en 'check_partial_eq_without_eq'
- clippy: cumple con las expectativas en 'check_unsafe_derive_deserialize'
- clippy: suprime 'iter_on_empty_collections' si se confía en el tipo concreto del iterador
- rust-analyzer: añadir la acción de código de asistencia 'toggle_async_sugar'
- rust-analyzer: permitir que sysroots solo consista en el directorio raíz de la fuente
- Rust-Analyzer: borrar los diagnósticos solo después de recibir los nuevos
- rust-analyzer: más información invocable
- rust-analyzer: arreglar 'data_constructor' ignorando genéricos para 'struct'
- rust-analyzer: corrige el cwd inconsistente de los comandos 'run' y 'debug' en el cliente
- rust-analyzer: asegúrese de que los límites implícitos de los tipos asociados se tengan en cuenta en autocompletar
- rust-analyzer: arreglar la reducción de 'format_args' pasando parámetros incorrectos a 'rustc_parse_format'
- rust-analyzer: inferir el tipo de bloque asíncrono con retorno de cola expr
- Rust-analyzer: Resolver el preludio externo para mods locales en módulos de bloques
- Rust-Analyzer: use el canal correcto de la cadena de herramientas al generar enlaces de documentos de tipo incorporado
- Rust-Analyzer: varias correcciones de ruta de búsqueda
- rust-analyzer: maneja '{self}' al eliminar importaciones no utilizadas
- Rust-Analyzer: Implementa la asistencia para cambiar entre los comentarios doc y normales
Triaje realizado por @simulacrum
1d0e4afd.. A59072EC
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
- Esta semana no se aprobaron RFC.
Cada semana, el equipo
- [disposición: fusionar] Problema de seguimiento de 'Error' en 'core'
- [disposición: fusionar] Hacer que 'WHERE_CLAUSES_OBJECT_SAFETY' sea una violación regular de la seguridad de los objetos
- [disposición: fusionar] Mostrar archivos producidos por '--emit foo' en notificaciones de artefactos json
- [disposición: fusionar] No intentes revelar tipos ocultos cuando intentes probar Congelar en el ámbito de definición
- [disposición: fusionar] Los límites de los elementos pueden hacer referencia a proyecciones automáticas y seguir siendo seguros para los objetos
- [disposición: fusionar] Usar una vida útil predeterminada de ''estático' en consts asociadas
- [disposición: fusionar] Estabilizar la función 'custom_code_classes_in_docs'
- [disposición: fusionar] Problema de seguimiento para integer_atomics
- [disposición: fusionar] Constificación de la construcción de BinaryHeap
- No hay problemas de seguimiento de carga ni PR en el período de comentarios finales de esta semana.
- 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.
- [nuevo] [RFC] Grupos de captura de macros con nombre
- [nuevo] Cambiar crates.io política para no ofrecer mediación de transferencia de cajas
- [nuevo] Rasgos implementables externamente
- [nuevo] [RFC] On_unimplemented_trait_use
- [nuevo] [RFC] Gancho de generación de subprocesos (heredando locales de subprocesos)
Eventos oxidados entre 2024-05-29 - 2024-06-26 🦀
- 29/05/2024 | Virtual | Capacitación 4 Programadores LLC
- 30/05/2024 | Virtual + Presencial (Barcelona, ES) | Materia principal y BcnRust
- 30/05/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 04/06/2024 | Virtual | Mujeres en Rust
- 04/06/2024 | Virtual (Búfalo, NY) | Encuentro de Buffalo Rust
- 05/06/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 06/06/2024 | Virtual | Expertos en código
- 06/06/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 09/06/2024 | Virtual | Expertos en código
- 11/06/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 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 | Expertos en código
- 18/06/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 19/06/2024 | Virtual (Vancouver, Columbia Británica, 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
- 01/06/2024 | Kampala, UG | Círculo de Rust Kampala
- 2024-05-28 - 2024-05-30 | Berlín, DE | Oxidar
- 30/05/2024 | Ámsterdam, Países Bajos | Grupo de desarrolladores de Rust en Ámsterdam
- 30/05/2024 | Barcelona, ES | Materia principal y BcnRust
- 30/05/2024 | Berlín, DE | Rust Berlin
- 30/05/2024 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 30/05/2024 | Oslo, NO | Rust Oslo
- 30/05/2024 | Viena, AT | Rust Viena
- 05/06/2024 | Hamburgo, DE | Encuentro de Rust Hamburgo
- 06/06/2025 | Vilnius, LT | Vilna Rust
- 19/06/2024 - 24/06/2024 | Zúrich, CH | RustFest Zürich
- 20/06/2024 | Aarhus, Dinamarca | Rust Aarhus
- 30/05/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 31/05/2024 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 08/06/2024 | Somerville, MA, EE. UU. | Reunión de Boston Rust
- 13/06/2024 | Spokane, WA, EE. UU. | Rust de Spokane
- 18/06/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 20/06/2024 | Seattle, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 25/06/2024 | Canberra, ACt, AU | Grupo de usuarios de Canberra Rust (CRUG)
- 06/06/2024 | Buenos Aires, AR | Rust en Español | Rust Argentina
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 Who's Hiring thread en r/rust
lo he dicho antes y lo diré de nuevo: como hijo de OCaml y C++, Rust es actualmente el mejor lenguaje para cosas en forma de compilador de producción.
¡Gracias a Stephan Sokolow 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