Esta semana en Rust #25
¡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.
¿Quieres tener TWIR en tu bandeja de entrada? Suscríbete aquí.
- ratatui - v0.27.0
- Introducción - ChoRus
- uuid ahora soporta correctamente los contadores de la versión 7
- Godot-Rust - Actualización de junio de 2024
- piggui v0.2.0
- ¡Lanzamiento de Git-Cliff 2.4.0!
- Reclamación, automática y de otro tipo
- Propiedad
- Puzzle: Compartir argumentos declarativos entre el nivel superior y el subcomando usando Clap
- ¿Estará vivo Rust en 10 años?
- Por qué WebAssembly llegó al Backend (Wasm in the wild part 3)
- ¿La construcción in situ parece sorprendentemente simple?
- Linealizador ígneo
- La vida en los carriles rápidos
- Modelo de simultaneidad de Rust vs modelo de simultaneidad de Go: corrutinas stackless vs stackfull
- ¡Domina el Rust jugando videojuegos!
- Instrumentación Tokio Waker
- Build with Naz : Guía completa para el análisis sintáctico de nombres
- Ejecución de un TLC5940 con un ESP32 utilizando el periférico RMT
- Rust Data-Structures: ¿Qué es un trie CIDR y cómo puede ayudarte?
- Patrones de Rust: Micro SDK
- [serie] La guía definitiva para el manejo de errores en Rust (parte 1): Errores dinámicos
El crate de esta semana es cargo-binstall, un subcomando de carga para instalar cajas de binarios fuera de sus versiones de github.
¡Gracias a Jiahao XU 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.
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 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!
428 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- 'hir_typeck': ser más conservador al hacer que la persona que llama a la nota elija ty param" nota
- 'rustc_type_ir': Omitir algunos campos 'struct' de la salida de depuración
- tener en cuenta las cosas que optimizan los costos de inserción
- en realidad contamina 'InferCtxt' cuando se emite un error de cumplimiento
- add '#[rustc_dump_{predicates,item_bounds}]'
- Agregue error duro y lint de migración para attrs inseguros
- permitir que "C-unwind" fn tenga variádicas C
- permitir restringir los tipos opacos durante la subtipificación en el sistema de rasgos
- permitir restringir los tipos opacos durante varios cambios de tamaño
- permitir el rastreo a través de invocaciones de consulta 'item_bounds' en opacos
- prohibir 'ArrayToPointer' y 'MutToConstPointer' de MIR en tiempo de ejecución
- cambie 'DefineOpaqueTypes::No' a 'Sí' en el código de diagnóstico
- Recopilar attrs en const block expr
- cobertura: añadir el indicador de depuración '-Zcoverage-options=no-mir-spans'
- cobertura: validación de revisión de la '#[cobertura(..)] ' atributo
- No permitir seguro/inseguro en elementos estáticos y FN
- no haga ICE cuando encuentre un campo de tipo externo durante la validación
- Corrección: la ruptura dentro del cierre asíncrono tiene un intervalo incorrecto para encerrar el cierre
- E0308: tipos no coincidentes, cuando expr está en el cuerpo de un brazo, no agregue punto y coma ';' al final
- Mejorar la recuperación de marcadores de conflicto
- Mejorar la propina para rasgos inaccesibles
- interpretar: mejor error cuando nos quedamos sin memoria
- Hacer que el código de colocación asíncrono sea más coherente con el código de colocación normal
- hacer que el fragmento de macro ':expr' dependiente de la edición actúe como lo hace el fragmento ':p at' dependiente de la edición
- Hacer que la impresión bonita para 'F16' y 'F128' sea consistente
- Reducción de coincidencias: expande los candidatos OR mezclados con los candidatos anteriores
- mostrar aviso sobre "nunca usado" de Depurar para 'enumeración'
- deja de ordenar el 'SyntaxContext' de 'Span's, ya que es incompatible con incremental
- sugerir bloques const en línea para la inicialización de matrices
- sugerir eliminar los campos de tupla no utilizados si son los últimos campos
- Eleva el siguiente solucionador de rasgos a 'rustc_next_trait_solver'
- añadir 'F16' y 'F128'
- miri: /miri: error más agradable cuando falla la construcción de miri-script
- Miri: 'UNIX/foreign_items': mover getpid a la parte derecha del archivo
- miri: no confíes en libc existente en Windows
- miri: arreglar el ICE causado por buscar más allá de 'i64::MAX'
- miri: implementar intrínsecos LLVM x86 adx
- miri: implementar intrínsecos de IMC x86 de LLVM
- Miri: Error de archivo por lotes más agradable cuando falla la construcción de Miri-script
- Miri: usa operaciones estrictas en lugar de operaciones comprobadas
- guardar 2 punteros en 'TerminatorKind' (96 → 80 bytes)
- agregue 'SliceLike' a 'rustc_type_ir', úselo en el código genérico del solucionador (+ algunos otros cambios)
- 'std::unix::fs': simplificación de copia para Apple
- 'std::unix::os::home_dir': optimización de reserva
- reemplace los códigos auxiliares de coincidencia de patrones 'F16' y 'F128' con implementaciones reales
- add 'PidFd::'{'kill', 'wait', 'try_wait'}
- también obtener 'add nuw' de 'uN::checked_add'
- generalizar {'Rc', 'Arc'}'::make_mut()' a tipos sin tamaño
- implementar 'array::repeat'
- make 'Option::as_[mut_]slice' 'const'
- cambiar el nombre de 'std::fs::try_exists' a 'std::fs::exists' y estabilizar 'fs_try_exists'
- reemplazar implementaciones de ordenación
- retorna el tipo opaco de 'PanicInfo::message()'
- estabilizar 'c_unwind'
- std: Refactorizar la implementación de almacenamiento local de subprocesos
- hashbrown: implementar operaciones XxxAssign en HashSets
- hashbrown: reemplace "ahash" por "default-hasher" en las características de Cargo
- cargo toml: avisar cuando la edición no está configurada, incluso cuando MSRV no está configurado
- cargo: add 'CodeFix::apply_solution' e impl 'Clone'
- cargo: hacer que '-Cmetadata' sea consistente en todas las plataformas
- cargo: simplificar la sintaxis de las funciones de comprobación
- cargo: simplificar la comprobación de los ciclos de dependencia
- Prueba de carga: agregar redacción automática para el error no encontrado
- Prueba de carga: Número de archivo de redacción automática
- Rustdoc: Agrega soporte para la función 'missing_unsafe_on_extern'
- implementar el formato 'use<>' en rustfmt
- rustfmt: palabras clave de seguridad de formato en elementos estáticos
- eliminar la impresión perdida de 'rewrite_static' de rustfmt
- resuelva clippy 'f16' y 'f128 unimplemented!'/'FIXME's
- clippy: 'missing_const_for_fn': añadir sugerencia aplicable a la máquina
- clippy: agregar filtro de aplicabilidad a la página de lista de lint
- clippy: añadir más tipos a 'is_from_proc_macro'
- clippy: no peluques 'implicit_return' en las macros proc
- clippy: corrige sugerencia incorrecta para 'manual_unwrap_or_default'
- clippy: resuelve 'clippy::invalid_paths' en 'bool::then'
- clippy: llamada innecesaria al método min/max
- rust-analyzer: palabra clave asíncrona completa
- rust-analyzer: comprueba que Expr no es ninguno antes de añadir la corrección
- rust-analyzer: add 'toggleLSPLogs' command
- rust-analyzer: añadir espacio después de palabras clave específicas en la finalización
- Rust-Analyzer: Filtro de expansión de macros incorporada
- rust-analyzer: no elimine los paréntesis para las llamadas de punteros similares a funciones que son miembros de una 'estructura' o unión
- rust-analyzer: asegúrese de que no haya ciclos en el 'source_root_parent_map'
- rust-analyzer: arreglar las características del IDE que se rompen en algunas macros de atr
- Rust-analyzer: arreglar el pánico de flycheck cuando se cancela
- rust-analyzer: maneja los límites de caracteres para caracteres anchos en 'extend_selection'
- Rust-analyzer: Mejorar el texto flotante en el diagnóstico de archivos desvinculados
- Rust-analyzer: solo muestra el diagnóstico de archivos no vinculados en la primera línea durante el inicio
- rust-analyzer: finalizaciones de patrones en let-stmt
- rust-analyzer: use 'ItemInNs::Macros' para convertir ModuleItem en ItemInNs
- Rust-analyzer: Eliminar la advertencia de extensión panicbit.cargo
- Rust-analyzer: simplifica algunas tácticas de búsqueda de términos
- Rust-Analyzer: Búsqueda de términos: nueva táctica para las constantes de elementos asociadas
En su mayoría, una serie de mejoras impulsadas por mejoras en el revestimiento MIR
algoritmos de ordenación
Triaje realizado por @simulacrum
c2932aaf.. C3D7FB39
Ver informe completo para más detalles.
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
- Cambiar crates.io política para no ofrecer mediación de transferencia de cajas
- UnsafePinned: permitir alias de referencias mutables ancladas
Cada semana, el equipo
- [disposición: fusionar] RFC: Notación de tipo de retorno
- [disposición: fusionar] Agregar un mecanismo general para configurar RUSTFLAGS en Cargo solo para la caja raíz
- [disposición: cerrar] Permitir especificar dependencias para artefactos individuales
- [disposición: fusionar] '#![ crate_name = EXPR]' semánticamente permite que 'EXPR' sea una llamada a macro, pero por lo demás la ignora en su mayoría
- [disposición: fusionar] Añadir sección de guía de estilo nocturno para la sintaxis 'precise_capturing' 'use<>'
- [disposición: fusionar] Problema de seguimiento para PanicInfo::message
- [disposición: fusionar] Problema de seguimiento para Cell::update
- [disposición: <sin especificar>] Problema de seguimiento para core::arch::{x86, x86_64}::has_cpuid
- [disposition: merge] Sintaxis para capturas precisas: 'impl Trait + use<..>'
- [disposición: fusionar] Eliminar la pelusa 'box_pointers'.
- [disposición: fusionar] Volver a implementar un límite basado en el tamaño de tipo
- [disposición: fusionar] Problema de seguimiento para 'duration_abs_diff'
- [disposición: fusionar] Comprobar los argumentos de alias para WF incluso si tienen variables enlazadas de escape
- No hay problemas de seguimiento de carga ni PR en el período de comentarios finales de esta semana.
- Ningún problema de seguimiento del equipo lingüístico o PR entró en el período de comentarios finales esta semana.
- No hay problemas de seguimiento de referencias lingüísticas ni solicitudes de incorporación de cambios en el período final de comentarios de esta semana.
- No hay problemas de seguimiento de pautas de código inseguro ni PR que hayan entrado en el período de comentarios finales esta semana.
- [nuevo] Sintaxis estructurada de carga para dependencias de características en cajas
- [nuevo] Información de caja cruzada de rustdoc fusionable
- [nuevo] Añadir RFC "crates.io: Eliminación de cajas"
Eventos oxidados entre 2024-06-26 - 2024-07-24 🦀
- 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
- 02/07/2024 | Híbrido - Virtual y Presencial (Los Ángeles, CA, EE. UU.) | Rust Los Ángeles
- 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 | Rust para el almuerzo
- 09/07/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 10/07/2024 | Virtual | Centro de Investigación Electrónica
- 11/07/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 11/07/2024 | Híbrido - Virtual y Presencial (Ciudad de México, DF, MX) | Rust MX
- 11/07/2024 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 11/07/2024 | Virtual (Tel Aviv, IL) | Expertos en código
- 16/07/2024 | Virtual (Tel Aviv, IL) | Expertos en código
- 17/07/2024 | Híbrido - Virtual y Presencial (Vancouver, BC, CA) | Rust de Vancouver
- 18/07/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 2024-07-23| Híbrido - Virtual y Presencial (Múnich/Múnich, DE) | Rust Múnich
- 24/07/2024 | Virtual | Mujeres en Rust
- 30/06/2024 | Kioto, JP | Rust de Kioto
- 03/07/2024 | Tokio, JP | Reunión de Rust en Tokio
- 27/06/2024 | Berlín, DE | Rust Berlin
- 27/06/2024 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 10/07/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 11/07/2024 | Praga, República Checa | Rust Praga
- 16/07/2024 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
- 16/07/2024 | Mannheim, DE | Hackschool - Rhein-Neckar
- 2024-07-23| Híbrido - Virtual y Presencial (Múnich/Múnich, DE) | Rust Múnich
- 26/06/2024 | Austin, TX, EE. UU. | ATC de Rust
- 27/06/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 27/06/2024 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 27/06/2024 | St. Louis, MO, EE. UU. | STl Rust
- 02/07/2024 | Híbrido - Los Ángeles, CA, EE. UU. | Rust Los Ángeles
- 05/07/2024 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 11/07/2024 | Híbrido - Ciudad de México, DF, MX | Rust MX
- 11/07/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 17/07/2024 | Híbrido - Vancouver, Columbia Británica, CA | Rust de Vancouver
- 18/07/2024 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 24/07/2024 | Austin, TX, EE. UU. | ATC de Rust
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
Rust no tiene inconsistencias teóricas... Un logro notable...
– Simon Peyton-Jones en YouTube
¡Gracias a ZiCog por la sugerencia y a Simon Farnsworth por el enlace mejorado!
¡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