Esta semana en Rust #28
¡Hola y bienvenidos a otro número de This Week in Rust! Rust es un lenguaje de programación que permite a todo el mundo crear software fiable y eficiente. Este es un resumen semanal de su progreso y comunidad. ¿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. Si encuentra algún error en la edición de esta semana, por favor envíe un PR.
¿Quieres tener TWIR en tu bandeja de entrada? Suscríbete aquí.
Actualizaciones de la comunidad de Rust 🥰
Fundación
Boletines informativos
Actualizaciones de proyectos/herramientas
- Slint 1.7 lanzado con nuevos widgets, soporte para múltiples ventanas y rediseño de vista previa en vivo
- Diésel asíncrono 0.5
- iroh 0.21.0 - Arreglar, limpiar y pulir
- gitoxide [junio de 2024]
- Tutorial de Iced v0.12 - Acciones asíncronas con comandos
- Query.rs - Un motor de búsqueda para Rust
Observaciones/Pensamientos
- sin.botes - Pin
- sin.barcos - Lugares anclados
- RocksDB: No es una buena opción para una plataforma de streaming de alto rendimiento
- Un sistema de tipos para RCL: Implementando un corrector de tipos en Rust
- Venciendo al compilador
- Deconstruyendo el videojuego de rol
- Implementación de WebSockets
- Argumentos con nombre en Rust, si los quieres
- WebAssembly en el servidor: Compilando Rust a WASM y ejecutándolo desde Go
- Async Rust: ¿El nuevo error de mil millones de dólares?
- Nine Rust Cargo.toml Wats and Wat Nots: Domine las reglas de formato de Cargo.toml y evite la frustración
Tutoriales de Rust
Miscelánea
Crate de la semana
El crate de esta semana es diatomic-waker, una biblioteca sin bloqueo por espín para la activación de tareas asíncronas.
¡Gracias a Ddystopia por la sugerencia!
[Por favor, envíe sus sugerencias y votos para la próxima semana] submit_crate!
Llamadas a la prueba
Un paso importante para la implementación de RFC es que las personas experimenten con el implementación y dar retroalimentación, especialmente antes de la estabilización. Lo siguiente Las RFC se beneficiarían de las pruebas de usuario antes de avanzar:
RFCs
- No se emitieron llamados para pruebas esta semana.
Rust
- No se emitieron llamados para pruebas esta semana.
Oxidación
- No se emitieron llamados para pruebas esta semana.
Si es un implementador de funciones y desea que su RFC aparezca en la lista anterior, agregue la nueva 'llamada para pruebas' a su RFC junto con un comentario que proporcione instrucciones de prueba y/o orientación sobre qué aspecto(s) de la función necesitan pruebas.
Llamado a la participación; Proyectos y ponentes
CFP - Proyectos
¿Siempre quisiste contribuir a proyectos de código abierto pero no sabías por dónde empezar? ¡Cada semana destacamos algunas tareas de la comunidad de Rust para que elijas y comiences!
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, por favor envía tareas aquí o a través de un PR a TWiR o poniéndote en contacto con X (Anteriormente twitter) o Mastodon!
CFP - Eventos
¿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 que están aceptando presentaciones para unirse a su evento como orador.
Si usted es un organizador de eventos que espera expandir 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!
Actualizaciones del Proyecto Rust
402 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- promover el objetivo 'wasm32-wasip2' al Nivel 2
- CFI: métodos proporcionados de apoyo sobre rasgos
- Edificio MIR: Deja de usar 'unpack!' para 'BlockAnd<()>'
- 'C-cmse-nonsecure-call': mensajes de error mejorados
- 'macro_metavar_expr_concat' Agregar soporte para literales
- 'macro_metavar_expr_concat' Permitir 'concate' en repeticiones
- agregar soporte de proceso para UEFI
- añadir los que faltan 'try_new_uninit_slice_in' y 'try_new_zeroed_slice_in'
- cambiar 'binary_asm_labels' para disparar solo en x86 y 'x86_64'
- Limpiar cálculos de nombre de archivo dll/exe en 'run_make_support'
- construir condicionalmente 'wasm-component-ld'
- tratar con UTF-8 inválido de 'gai_strerror'
- delegación: coerción de apoyo para la expresión objetivo
- denegar la vida útil de las palabras clave antes de la expansión
- no permitir estáticas inseguras fuera de los bloques externos
- no generar artefactos de prueba incrementales en el directorio de trabajo
- no use características implícitas en 'Cargo.toml' en 'compiler/'
- arreglar ICE en sugerencia causada por '==' siendo recuperado como '=='
- arreglar un montón de sitios que estaban caminando en lugar de visitar, haciendo imposible que los implicados de los visitantes miren estos valores
- arreglar casos ambiguos de múltiples & en vidas propias elididas
- arreglar y reforzar 'unsafe_op_in_unsafe_fn' en el compilador
- arreglar sugerencia de eliminación de elemento asociado
- se corrige la sugerencia de captura precisa para regiones ocultas cuando tenemos APITs
- soluciona el problema de sugerencia inválida para una referencia de iterador
- corrige el error de pánico 'índice fuera de límites' en un error conflictivo
- prohibir que los préstamos y los tipos sin tamaño se utilicen como el tipo de un genérico const bajo 'adt_const_params'
- interpretar: añadir comprobación de cordura en dyn upcast para comprobar lo que hace CodeGen
- invertir inferir 'error_reporting' estructura de mod
- simplemente negar por completo las consts de enlace tardío
- alias de tipo perezoso: diagnóstico: Detecta parámetros bivariantes que solo se usan recursivamente
- mantener la orden dada en la ejecución del paso
- hacer que ErrorGuaranteed sea detectable fuera de los tipos, consts y tiempos de vida
- hacer que 'pub_use_of_private_extern_crate' aparezca en los futuros informes de rotura de la carga
- match lowering: Usa un iterador para encontrar 'expand_until'
- intervalo preciso de sugerencia de cambio de nombre de 'uso'
- intervalo más preciso para sugerencia de argumento anónimo
- intervalo más preciso para la sugerencia de parámetro de tipo
- use un intervalo más preciso para la sugerencia 'addr_of!
- sugerencia más precisa para '-> Box<dyn>' o '-> impl Trait'
- analizador: sugiere colocar el tipo de retorno después de los parámetros de la función
- Aplicar de forma segura los requisitos de nombre de hilo
- resuelve un error de sugerencia '.clone()' al mover una referencia mutable
- sugerir un préstamo cuando se usa dbg
- Sugerencias de ajustes cuando se usa un tipo incorrecto de literal 'enum'
- usar número ordinal en el argumento error
- Cuando encuentre un objeto cerrado detrás de una bandera 'CFG', apúntelo
- miri: añadir soporte para la bandera 'O_NOFOLLOW'
- Miri: añadir cuñas 'pread' y 'pwrite'
- eliminar la clasificación de implicaciones innecesarias en consultas y metadatos
- algunas mejoras en el analizador
- Corregir dígitos menos significativos de las constantes asociadas a F128
- std: use 'read_unaligned' para lecturas de DWARF
- 'impl Send + Sync' y anula 'count' para el iterador 'CStr::bytes'
- 'ptr::metadata': evitar referencias a tipos extern
- añadir 'isqrt' a 'NonZero<uN>'
- use ThreadId en lugar de la dirección TLS en 'ReentrantLock'
- use el discriminante de la opción como sugerencia de tamaño
- usar futex.rs para el estacionamiento de subprocesos de Windows
- windows: use la implementación de futex para 'Once'
- Windows: Evitar la doble referencia en el futex genérico
- Comience a usar '#[diagnostic::d o_not_recommend]' en la biblioteca estándar
- Omitir la ruta rápida para dec2flt cuando 'optimize_for_size'
- cargo toml: Mejorar el error al faltar el paquete y el espacio de trabajo
- cargo: add 'TomlPackage::new', 'Default' for 'TomlWorkspace'
- cargo: Se corrige el paso de links-overrides con target-applys-to-host y un target implícito
- Rustdoc: Haga clic en el objetivo de los elementos de la barra lateral al ras de la izquierda
- rustdoc: arreglar la clase 'actual' en la barra lateral modnav
- rustdoc: las descripciones cortas causan saltos de palabras en las tablas
- Agregar soporte de captura precisa de caja cruzada a Rustdoc
- rustfmt: impl 'rewrite_result' para ArmWrapper
- rustfmt: return RewriteResult para 'rewrite_path' y 'rewrite_struct_***'
- clippy: 'pathbuf_init_then_push': Comprueba si hay llamadas para 'empujar' inmediatamente a...
- clippy: añadir pelusa para la recreación de una 'estructura' completa
- clippy: crea pases de lint usando 'Conf'
- clippy: arreglar sugerencias de 'excessive_precision' en flotadores escritos en notación científica
- clippy: se corrige la sugerencia incorrecta para 'single_element_loop' donde faltaban paréntesis
- clippy: lint 'zero_repeat_side_effects' solo si la longitud de la matriz es un cero literal
- Rust-analyzer: Añadir los casos especiales de análisis de Dyn que faltan en la edición 2015
- rust-analyzer: permitir expansiones de macros en 'RestPat' en argumentos de tupla funcionan como puntos suspensivos como 'RestPat' simple
- rust-analyzer: evite ref cuando use format! en el compilador
- Rust-analyzer: Agregue soporte de sugerencia de incrustación para Block expr con etiqueta de por vida
- Rust-Analyzer: Analizador de edición consciente
- rust-analyzer: go-to-def y find-references en palabras clave de flujo de control
- Rust-Analyzer: Característica: enseñar a Rust-Analyzer a descubrir 'linked_projects'
- rust-analyzer: arreglar los valores predeterminados incorrectos de la sugerencia de parámetros genéricos
- rust-analyzer: arreglar la resolución de la ruta para los mods hijos de los expandidos por 'include!'
- rust-analyzer: permitir que flyimport importe módulos de sombreado primitivos
- rust-analyzer: no llames a 'macro_arg' directamente en 'ExpandDatabase::syntax_context'
- rust-analyzer: arreglar más resolución de ruta para los submódulos incluidos
- rust-analyzer: maneja las importaciones sinónimas con diferentes cambios de nombre en 'fusionar importaciones'
- rust-analyzer: pánico en el perfil de depuración para la deconstrucción de tuplas con desajuste de aridad
- rust-analyzer: eliminar las invocaciones incorrectas de nunca
- Rust-Analyzer: más mejoras de 'find_path'
- Rust-analyzer: más uso de símbolos
- rust-analyzer: analizar correctamente la palabra clave dyn contextual en la edición 2015
- Rust-analyzer: reduce el uso de memoria de las ranuras Salsa en 8 bytes
- rust-analyzer: prefiera las rutas de biblioteca estándar sobre las reexportaciones de datos externos más cortas
- rust-analyzer: establecer 'RUSTC_TOOLCHAIN' para runnables
- Rust-analyzer: algunas pequeñas mejoras más en la memoria de la salsa
- rust-analyzer: soporte 'rustc_skip_during_method_dispatch'
- rust-analyzer: cambiar los árboles de tokens para usar símbolos
Clasificación del rendimiento del compilador de Rust
Semana de la luz, con pocos cambios en cualquier dimensión (incluida la memoria), eso sí. En general, una ligera regresión.
Triaje realizado por @simulacrum. Rango de revisión: 5572759b.. 9629b90b
1 regresión, 1 mejora, 1 mixto; 2 de ellos en rollups 34 comparaciones de artefactos realizadas en total
RFC aprobados
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios). Estos son las RFC que se aprobaron para su implementación esta semana:
- No se aprobaron RFC esta semana.
Período final de comentarios
Cada semana, el equipo anuncia el 'período final de comentarios' para las RFC y las RP clave que están llegando a una decisión. Expresa tus opiniones ahora.
RFCs
- [disposición: no especificada] RFC para objetivos del proyecto
- [disposición: fusionar] Promover aarch64-apple-darwin al Nivel 1
- [disposición: fusionar] agregar semántica flotante RFC
Seguimiento de problemas y relaciones públicas
Rust
- [disposición: fusionar] Problema de seguimiento para el acceso a campos anidados en offset_of
- [disposición: fusionar] [rustdoc] Agregar función de código de copia
- [disposición: fusionar] Estabilizar 'const {integer}::from_str_radix' es decir, 'const_int_from_str'
- [disposición: fusionar] La unión implícita de subprocesos con ámbito no espera a que se eliminen las ubicaciones de subprocesos
Carga
- No hay problemas de seguimiento de carga ni PR ingresaron al período de comentarios finales esta semana.
Equipo lingüístico
- No hubo problemas de seguimiento de equipos lingüísticos ni relaciones públicas en el período de comentarios finales esta semana.
Referencia lingüística
- Ninguna RFC de referencia lingüística entró en el período final de comentarios esta semana.
Directrices para códigos inseguros
- No hay problemas de seguimiento de pautas de código inseguro o PR ingresados al período de comentarios finales esta semana.
RFC nuevas y actualizadas
- No se crearon RFC nuevos o actualizados esta semana.
Próximos eventos
Eventos de Rusty entre 2024-07-24 - 2024-08-21 🦀
Virtual
- 24/07/2024 | Virtual | Mujeres en Rust
- 25/07/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Rust en Charlottesville
- 27/07/2024 | Híbrido - Virtual y Presencial (Kiev, UA) | Rust de UA
- 27/07/2024 | Virtual | Reunión mensual de Leptos
- 30/07/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 31/07/2024 | Virtual (Tel Aviv, Illinois) | Expertos en código
- 01/08/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 06/08/2024 | Virtual | Mujeres en Rust
- 06/08/2024 | Virtual (Buffalo, NY, EE. UU.) | Encuentro de Buffalo Rust
- 06/08/2024 | Virtual (Tel Aviv, Illinois) | Expertos en código
- 07/08/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 08/08/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Rust en Charlottesville
- 08/08/2024 | Virtual (Nürnberg, DE) | Rust de Núremberg
- 08/08/2024 | Virtual (Tel Aviv, Illinois) | Expertos en código
- 13/08/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 15/08/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 20/08/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 21/08/2024 | Híbrido - Virtual y Presencial (Vancouver, BC, CA) | Rust de Vancouver
África
- 02/08/2024 | Kampala, UG | Círculo de Rust Kampala
Europa
- 25/07/2024 | Augsburgo, DE | Encuentro de Rust Augsburgo
- 25/07/2024 | Berlín, DE | OpenTechSchool Berlín + Rust Berlin
- 27/07/2024 | Híbrido - Virtual y Presencial (Kiev, UA) | Rust de UA
- 30/07/2024 | Basilea, CH | Basilea Rust
- 14/08/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 20/08/2024 | Aarhus, Dinamarca | Rust Aarhus
- 21/08/2024 | Nürnberg, DE | Rust de Núremberg
América del Norte
- 24/07/2024 | Austin, TX, EE. UU. | Oxidar ATC
- 25/07/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 29/07/2024 | Cambridge, MA, Estados Unidos| Encuentro de Boston Rust
- 01/08/2024 | St. Louis, MO, EE. UU. | STL Rust
- 08/08/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 08/08/2024 | Seattle, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 19/08/2024 | Minneapolis, MN EE. UU. | Reunión de Rust en Minneapolis
- 20/08/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 21/08/2024 | Híbrido - Vancouver, Columbia Británica, CA | Rust de Vancouver
Oceanía
- 01/08/2024 | Brisbane, QLD, Australia | Rust Brisbane
Si está ejecutando un evento de Rust, agréguelo al calendario para obtener que se menciona aquí. Por favor, recuerde agregar un enlace al evento también. Envíe un correo electrónico al [Equipo de la comunidad de Rust] comunidad para obtener acceso.
Empleos
Por favor, consulte el último hilo de Who's Hiring en r/rust
Frase de la semana
Rust no te da errores buenos, te da control sobre los errores.
A pesar de la lamentable escasez de sugerencias, llogiq está satisfecho con su elección.
¡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