Esta semana en Rust #29
¡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 (antes 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 🥰
Oficial
Fundación
Boletines informativos
Actualizaciones de proyectos/herramientas
- Versión 🎉 2.2 de la macro del constructor de próxima generación. Derivar sintaxis y soporte 🚀 cfg
- Redox OS 0.9.0 - Redox - Su próximo sistema operativo (Gen)
Observaciones/Pensamientos
- Rust en RP2350
- Cómo construimos la detección de errores tipográficos de 300 μs para 1,3 millones de palabras en Rust
- Compresión de cadenas con FSST
- Información de código local usando Ollama con Rust, Qdrant, FastEmbed y OpenTelemetry
- WebP: El formato de compresión de la página web
- Portar C a Rust para un decodificador de medios AV1 rápido y seguro
- Optimizando rav1d, un decodificador AV1 en Rust
- ¡Una optimización que es imposible en Rust!
- ¿Por qué comencé a transmitir en vivo como desarrollador de Rust?
- ¿Qué tiene de difícil hacer hash de datos?
- Módulo-compañero para una función independiente - elementos asociados para una función
- No más consultas SQLx sin marcar
- [video] Renacimiento de las interfaces de usuario de terminales con Rust — FrOSCon 2024
Tutoriales de Rust
- [video] Build with Naz : Explore Linux TTY, proceso, señales con Rust - Parte 3/3 'tokio::p rocess::Command'
Crate de la semana
El crate de esta semana es cargo-override, un complemento de carga para anular rápidamente las dependencias.
¡Gracias a Ajith por la sugerencia!
[Por favor, envíen 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é aspectos(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 (antes 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 a TWiR o comunicándose en X (anteriormente Twitter) o Mastodon!
Actualizaciones del Proyecto Rust
Se [fusionaron 399 solicitudes de extracción en la última semana][fusionadas]
- añadir soporte para GNU/Hurd en 'x86_64'
- agregar soporte de destino para RTEMS Arm
- 'impl_trait_overcaptures': No te preocupes por las vidas contravariantes no capturadas si sobreviven a una vida capturada
- añadir sugerencias para palabras clave mal escritas
- agregar una pelusa interna que avisa cuando se accede a datos no rastreados
- Tipos de sí mismo arbitrarios v2: punteros característica de puerta
- autodiff Upstream - enzima backend
- omitir la configuración del enlazador y la verificación de objetivos cruzados para comandos específicos
- verifique WF de la firma del tipo de fuente en la transmisión del puntero fn
- [manejar correctamente la estabilidad de los atributos '#[diagnóstico]']](https://github.com/rust-lang/rust/pull/130036)
- Cobertura: Cuenta para esperar cuando el Futuro esté listo de inmediato
- Delegación: Apoyar los genéricos en los artículos de delegación asociados
- distribuir 'rustc_codegen_cranelift' para Windows
- no intentes probar metas desconocidas
- No llamar a la consulta para calcular el diseño de corrutina para el cuerpo sintético del cierre asíncrono
- No solicite desinfectantes para funciones desnudas
- No omitir la configuración del enlazador para compilaciones de 'verificación'
- no sugiera etiquetar los bloques 'const' y 'inseguros'
- no construya un cuerpo por movimiento cuando el cierre asíncrono esté contaminado
- no emita 'esperar'/'asumir' en opt-level=0
- no almacenar la región en 'CapturedPlace'
- arreglar ICE causado por la falta de un intervalo en un error de región
- arreglar ICE en la validación de tipo CMSE
- arreglar ICE cuando 'asm_const' y 'const_refs_to_static' están combinados
- arreglar el doble manejo en 'collect_tokens'
- Arreglar la habilitación de wasm-component-ld para que coincida con otras herramientas
- corrección: obtener el tipo de LLVM de valor global
- implementar vidas y etiquetas sin procesar (''r#ident')
- implementar sugerencias para 'elided_named_lifetimes'
- interpretar: hacer copias mecanografiadas con pérdida de procedencia y relleno
- hacer que las consultas de superrasgos y predicados implícitos sean predeterminadas
- las estructuras no exhaustivas pueden estar vacías
- renombrar el volcado de corrutina by-move-body para que sea más consistente, arreglar ICE en 'dump_mir'
- S390X: Corregir una regresión relacionada con la función de backchain
- sugerir 'impl trait' para referencias a rasgo desnudo en el encabezado de la función
- suprimir nichos en corrutinas para evitar violaciones de aliasing
- use 'DeepRejectCtxt' para rechazar rápidamente a los candidatos de 'ParamEnv'
- Miri: un poco de refactorización en "sync"
- Miri: Detecta cuando se mueve 'pthread_mutex_t'
- Miri: Detecta cuando se mueve 'pthread_rwlock_t'
- miri: habilitar bibliotecas nativas en macOS
- Miri: arreglar comentario en 'mutex_id_offset'
- miri: variable renombrada y comentarios corregidos referentes a FileDescriptor renombrado
- estabilizar '-Znext-solver=coherencia'
- estabilizar 'char::MIN'
- estabilizar 'const_float_bits_conv'
- estabilizar 'waker_getters'
- Reparar CVE-2024-43402
- irrumpir en el depurador (si está conectado) en pánicos (Windows, Linux, macOS, FreeBSD)
- const: hacer que 'ptr.is_null()' detenga la ejecución en la ambigüedad
- hacer que 'Resultado::copiado' conste de manera inestable
- str: hacer 'as_mut_ptr' y 'as_bytes_mut' de manera inestable const
- use el algoritmo div trifecta para div de 128 bits en wasm
- cargo: resolve: Reporte versión compatible con MSRV en lugar de incomptible
- cargo: new: Agregar al espacio de trabajo relativo al manifiesto, no al directorio actual
- Cargo: fianza antes de empaquetar en la misma versión
- Cargo: no incluya automáticamente la caja actual al empaquetar
- cargo: arreglar el agregado de carga que se comporta diferente al traducir el nombre del paquete
- cargo: Arreglar el análisis de valores separados por comas en --crate-type flag
- Cargo: Incluir el estado de dependencia público/privado en 'Metadatos de carga'
- cargo: espacio de trabajo de publicación
- Cargo: eliminar símbolos innecesarios
- cargo: uplift windows gnullvm import libraries
- rustdoc-search: permitir la búsqueda de arg 'Foo →' al final de la película
- rustdoc: Ordena los artículos asociados por tipos y luego por apariencia
- rustdoc: añadir mapa de cabecera a la tabla de contenidos
- rustdoc: normalizar los nombres de tipos/campos
- rustdoc: use strategic boxing para reducir 'clean::Item'
- rustfmt: impl 'rewrite_result' para ForeignItem, TraitAliasBounds, WherePredicate
- rustfmt: impl 'rewrite_result' por 'ast::Expr'
- rustfmt: implementar version-sort para importaciones en 'style_edition' 2024
- bindgen: estabilizar '--wrap-static-fns'
- clippy: 'single_match', 'single_match_else': sugerencia de corrección cuando la coincidencia es irrefutable
- clippy: 'manual_div_ceil': init
- clippy: añadir una nueva comprobación para pasar punteros a un bloque 'asm!' con la opción 'nomem'
- clippy: añadir nueva pelusa 'manual_is_power_of_two'
- clippy: se agregó una nueva pelusa 'non_zero_suggestions'
- clippy: arreglar 'needless_return' falso negativo
- clippy: mover 'manual_c_str_literals' a la complejidad
- clippy: solo lint 'manual_non_exhaustive' para los tipos exportados
- clippy: visita los campos 'struct' recursivamente en la verificación de reserva de uninit
- rust-analyzer: Soporte IDE para expresiones 'asm!
- Rust-analyzer: Sugerencias de mejores nombres para FN
- rust-analyzer: siempre establece explícitamente los tipos propios 'TraitRef' al bajar
- Rust-Analyzer: Atrape los pánicos de la computación de diagnóstico
- Rust-Analyzer: ¡Par de ASM! correcciones de análisis y descenso
- Rust-analyzer: No cunda el pánico en el hilo del escritor LSP en el receptor caído
- Rust-analyzer: Arreglar la disminución de los bucles for que sueltan el bloque de bucle
- Analizador de Rust: Prevenir adecuadamente la construcción de Mir con tipos desconocidos presentes
- Rust-analyzer: la actualización de la configuración no debería obstaculizar los proyectos descubiertos
Clasificación del rendimiento del compilador de Rust
Una semana relativamente tranquila, con la mayoría de las regresiones en rollups, lo que dificulta la investigación. Afortunadamente, las regresiones son relativamente pequeñas y, en general, la semana fue una ligera mejora en el rendimiento del compilador.
Triaje realizado por @rylev. Rango de revisión: 6199b69c.. 263a3aee
Resumen:
| (instrucciones:u) | media | Gama | Recuento |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regresiones ❌
(primaria) | 0.6% | [0.2%, 1.4%] | 57 |
| Regresiones ❌
(secundaria) | 0.7% | [0.2%, 1.5%] | 23 |
| Mejoras ✅
(primario) | -2,2% | [-4,0%, -0,4%] | 23 |
| Mejoras ✅
(secundaria) | -0,3% | [-0.3%, -0.2%] | 10 |
| Todos ❌✅ (primarios) | -0,2% | [-4,0%, 1,4%] | 80 |
3 regresiones, 1 mejora, 2 mixtas; 3 de ellos en rollups 26 comparaciones de artefactos realizadas en total
RFCs 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:
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
- Ninguna RFC entró en el Período Final de Comentarios esta semana.
Seguimiento de problemas y relaciones públicas
Rust
- [disposición: fusionar] Constitución interna: aceptar punteros mutables interiores en el valor final
- [disposición: fusionar] Estabilizar '&mut' (y '*mut') así como '&Cell' (y '*const Cell') en const
- [disposición: fusionar] [library/std/src/process.rs] 'PartialEq' para 'ExitCode'
- [disposición: fusionar] Relacionar el receptor invariablemente en la sonda del método para 'Modo::P ath'
- [disposición: fusionar] (Anti)regresión entre Rust 1.78.0 y Rust 1.79.0 con estructura que contiene 'Cow<[Self]>
Carga
- No hay problemas de seguimiento de carga o PR ingresaron al Período de comentarios finales esta semana.
Equipo lingüístico
- No hay problemas de seguimiento de equipos lingüísticos ni PR ingresados al período final de comentarios 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 nuevas o actualizadas esta semana.
Próximos eventos
Eventos oxidados entre 2024-09-11 - 2024-10-09 🦀
Virtual
- 2024-09-10 - 2024-09-13 | Híbrido: virtual y presencial (Montreal, QC, CA) | Conf. Rust
- 12/09/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 12/09/2024 | Virtual (Róterdam, Países Bajos) | Desarrollo de juegos Bevy
- 12/09/2024 | Virtual (San Diego, CA, EE. UU.) | Rust de San Diego
- 16/09/2024 | Virtual | Mujeres en Rust
- 17/09/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 18/09/2024 | Virtual y presencial (Vancouver, BC, CA) | Rust de Vancouver
- 18/09/2024 - 20/09/2024 | Híbrido - Virtual y Presencial (Viena, AT) | Conferencia de plomeros de Linux
- 19/09/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Rust en Charlottesville
- 19/09/2024 | Virtual y presencial (Seattle, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 24/09/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 26/09/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 26/09/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Rust en Charlottesville
- 02/10/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 02/10/2024 | Virtual (Vancouver, Columbia Británica, CA) | Vancouver Postgres
- 03/10/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Rust en Charlottesville
- 08/10/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
África
- 05/10/2024 | Kampala, UG | Círculo de Rust Kampala
Asia
- 14/09/2024 | Bangalore, IN | Rust de Bangalore
- 21/09/2024 | Bangalore/Bangalore, IN | Rust de Bangalore
Europa
- 11/09/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 17/09/2024 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
- 17/09/2024 | Manchester, Reino Unido | Rust Manchester
- 17/09/2024 | Trondheim, NO | Rust Trondheim
- 18/09/2024 | Moravia, CZ | Rust Moravia
- 18/09/2024 | Viena, AT + Virtual | Conferencia de plomeros de Linux
- 21/09/2024 | Estocolmo, SE | Estocolmo Rust
- 23/09/2024 | Bratislava, SK | Grupo de encuentro de Bratislava Rust
- 24/09/2024 | París, FR | Rust París
- 24/09/2024 | Estocolmo, SE | Estocolmo Rust
- 26/09/2024 | Aarhus, Dinamarca | Rust Aarhus
- 26/09/2024 | Augsburgo, DE | Encuentro de Rust Augsburgo
- 26/09/2024 | Berlín, DE | OpenTechSchool Berlín + Rust Berlin
- 26/09/2024 | Praga, CZ | Rust Praga
- 27/09/2024 | Mannheim, DE | Hackerstolz e.V.
- 02/10/2024 | Oxford, Reino Unido | Grupo de Encuentro de Oxfrod Rust
- 02/10/2024 | Estocolmo, SE | Estocolmo Rust
- 03/10/2024 | Nürnberg, DE | Rust, Núremberg, DE
- 03/10/2024 | Oslo, NO | Rust Oslo
- 09/10/2024 | Reading, Reino Unido | Taller de lectura de Rust
América del Norte
- 11/09/2024 | Boulder, CO, EE. UU. | Encuentro de Boulder Rust
- 12/09/2024 | Chicago, Illinois, Estados Unidos | Rust de plato profundo
- 16/09/2024 | Cambridge, MA, EE. UU. | Reunión de Boston Rust
- 17/09/2024 | Minneapolis, MN Estados Unidos | Encuentro de Rust en Minneapolis
- 17/09/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 18/09/2024 | Virtual y presencial (Vancouver, BC, CA) | Rust de Vancouver
- 19/09/2024 | Virtual y presencial (Seattle, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 21/09/2024 | Longview, TX, EE. UU. | Código de Longview y café
- 24/09/2024 | Detroit, MI, EE. UU. | Rust de Detroit
- 25/09/2024 | Austin, TX, Estados Unidos | Rust ATX
- 26/09/2024 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 27/09/2024 | Cambridge, MA, EE. UU. | Reunión de Boston Rust
- 03/10/2024 | St. Louis, MO, EE. UU. | STL Rust
- 08/10/2024 | Detroit, MI, EE. UU. | Rust de Detroit
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 acceder.
Empleos
Por favor, consulte el último hilo de Who's Hiring en r/rust
Frase de la semana
¡Ay! Una vez más estamos desamparados de una cita para elatar o explicar por lo que este editor simplemente ha dejado la opción en rima para quejarse.
– llogiq
¡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