Esta semana en Rust #13
¡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 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, envíe un PR.
Actualizaciones de la comunidad de Rust 🥰
Oficial
Actualizaciones de proyectos/herramientas
- Rustdoc JSON en 2023
- Revisión de 2023: Establecimiento de Rust como lenguaje de Godot 4
- Actualización de Rust9x: Rust 1.76.0-beta
- Anunciando smol-macros, smol-hyper y smol-axum
- Informe de progreso del equipo de Rust Language Bootstrap 2023
- gitoxide: El año en retrospectiva, y lo que está por venir
Observaciones/Pensamientos
- Algunas soluciones rápidas para Advent of Code 2023
- Una actualización sobre errores de seguridad en la memoria de escritura
- avatar.png
- Arc vs String, ¿es Arc realmente más rápido?
- Iggy.rs - Construyendo la transmisión de mensajes en Rust
- Primeros pasos con Loco en Rust: Parte 1
- Errores de impresión en Rust
- [video] Rust 1.75.0: ¡54 momentos destacados en 20 minutos!
Miscelánea
- Aplicación de línea de comandos de prueba escrita en Rust
- Aplicaciones de código abierto escritas en Rust
- Prompt - entrada de lectura de la entrada estándar (STDIN) en Rust
- Probando tu Rust Incrustado (feat. embedded-hal-mock y explosiones)
- [video] Rust Release Train 1.75
- [video] Rust 1.75.0: 54 destacados en 20 minutos
Crate de la semana
El crate de esta semana es fast_pool, un grupo asíncrono rápido basado en la caja del canal de canal.
¡Gracias a zhuxiujia por la autosugestión!
[Por favor, envíen sus sugerencias y votos para la próxima semana] submit_crate!
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 las 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.
- Hyperswitch - Implementar código cov para el sistema local usando makefile
- Hyperswitch - Cobertura de código de configuración para pruebas locales y CI
- Hyperswitch - Agregar tipo de dominio para el secreto de cliente
- Hyperswitch - Have get_required_value para usar ValidationError en OptionExt
- Ockam - Usa la API de GitHub para comprobar si la CLI está desactualizada
- Ockam - refactorizar para usar interfaces tipadas para implementar comandos para 'servicios de kafka'
- Ockam - Validar las estructuras CBOR de acuerdo con el esquema cddl para 'cloud/space' y 'cloud/subscription'
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.
Actualizaciones del Proyecto Rust
194 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- 'rustc_lint': Forzar 'rustc::p otential_query_instability' lint
- 'rustc_lint': Evitar la triplicación de varias pelusas
- 'unused_bindings': también las fijaciones de paseo creadas por los protectores if-let
- cambiar la interfaz 'atomic_cmpxchg' de 'rustc_codegen_ssa' para devolver un par de valores
- cobertura: evitar un posible peligro de estabilidad de consultas en 'CoverageCounters'
- Cobertura: Preparar asignaciones por separado de las instrucciones de inyección
- cobertura: desexpandir intervalos con 'find_ancestor_inside_same_ctxt'
- No sueltes un nodo hir después de bajar
- No sugiero escribir un brazo sin cuerpo si el patrón nunca puede ser un patrón nunca
- no validar / lint MIR antes de cada pasada
- Habilitar perfilador en dist-powerpc-linux
- corregir bucle infinito en '<BoundConstness>'
- corregir la ayuda de diagnóstico de la función check-cfg Cargo no válida
- Se corrige el paréntesis de los subexprs que contienen el límite de la declaración
- corrección: corregir los argumentos para el diagnóstico 'desambiguar la función asociada'
- Corrección: diagnóstico para la referencia de conversión a la rebanada
- introducir 'const trait' (always-const trait bounds)
- simplifica 'Parser::ident_or_error'
- simplificar los argumentos de bootstrap '--check-cfg'
- Compatibilidad con Solaris en el bloqueo de arranque
- sincronización de subárbol para 'rustc_codegen_cranelift'
- sugerir '=>' → '>=' en comparaciones
- Utilice la opción 'llvm-tools' no utilizada
- miri: arreglar los ICE de desbordamiento de enteros de 'round_up_to_next_multiple_of'
- miri: No determinismo NaN para funciones intrínsecas y libm
- miri: soporte para tempfile crate en hosts UNIX
- implementar la propagación constante sobre el análisis MIR SSA
- solo almacena StableCrateId una vez en DefPathTable
- Reducir aún más la codificación del intervalo
- openbsd: 'available_parallelism': usa la API correcta
- cargo: 'cargo add' - corrección para agregar características desde el repositorio con múltiples paquetes
- cargo: 'cargo fix': heredar siempre el servidor de trabajo
- cargo: arreglar 'fix::fix_in_dependency' para no depender de rustc
- cargo: rustfix: soporte para insertar nuevas líneas
- rustdoc-search: contar ediciones de ruta con límite de edición separado
- rustdoc: tratar la cadena de consulta '+' como espacio
- clippy: comprueba si hay 'coincidencias' redundantes con 'Listo', 'Pendiente', 'V4', 'V6'
- clippy: '[doc_markdown]': Añade "WebGL2", "WebGPU" a 'doc_valid_idents'
- clippy: añadir comprobaciones de macros externas a 'iter_without_into_iter' y 'into_iter_without_iter'
- clippy: no pelude 'default_numeric_fallback' en las llamadas de macro asignadas locales y de retorno con el tipo indicado
- clippy: extender 'unconditional_recursion' para comprobar si hay implementaciones de ToString
- clippy: añadir 'manual_is_variant_and' lint
- clippy: añadir nueva pelusa 'pub_underscore_fields'
- clippy: sugerir 'str.lines' cuando se divide en saltos de línea codificados
- clippy: hacer que 'mutex_atomic' sea más consciente de los tipos
- clippy: nueva pelusa: 'empty_enum_variants_with_brackets'
- clippy: nueva pelusa: 'thread_local_initializer_can_be_made_const'
- clippy: nueva pelusa: 'eager_transmute'
- clippy: eliminar mitigaciones para argumentos de nodo incorrectos
- rust-analyzer: corrige SyntaxContextID usando autoidentificadores incorrectos
- rust-analyzer: se corrige el pánico fuera de límites en algunas macros debido a 'self_ref' no manejado
Clasificación del rendimiento del compilador de Rust
En general, esta semana ha habido muy pocas regresiones y una cantidad moderada de mejoras. Las dos mejoras más importantes se produjeron en la forma en que se codificaban los metadatos, incluido un cambio para almacenar StableCrateId solo una vez en DefPathTable, lo que produjo una mejora promedio del 0,3 % en 79 puntos de referencia diferentes.
Triaje realizado por @rylev. Rango de revisión: 1ab783112.. 67b6975
Resumen:
| (instrucciones:u) | media | Gama | Recuento | |:----------------------------------:|:-----:|:---------------:|:-----:| | Regresiones ❌
(primaria) | 0.7% | [0,3%, 1,5%] | 8 | | Regresiones ❌
(secundaria) | 0.8% | [0,2%, 1,3%] | 23 | | Mejoras ✅
(primaria) | -0,6% | [-2,6%, -0,2%] | 121 | | Mejoras ✅
(secundaria) | -5,2% | [-62,5%, -0,2%] | 53 | | Todos ❌✅ (primario) | -0,5% | [-2,6%, 1,5%] | 129 |2 regresiones, 3 mejoras, 1 mixta; 0 de ellos en rollups 46 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:
- Esta semana no se aprobaron RFC.
Período final de comentarios
Cada semana, el equipo anuncia el 'período final de comentarios' para las RFC y los PR clave que están llegando a una decisión. Expresa tus opiniones ahora.
RFC
- Ninguna RFC entró en el Período de Comentarios Final esta semana.
Seguimiento de problemas y solicitudes de incorporación de cambios
- [disposición: fusionar] rustdoc: buscar tuplas y unidades por tipo con ()
Referencia del idioma
- Ninguna RFC de referencia lingüística entró en el Período Final de Comentarios esta semana.
Directrices de código inseguro
- Ninguna RFC de la Guía de Código Inseguro entró en el Período Final de Comentarios esta semana.
RFC nuevas y actualizadas
- RFC: Nuevos tipos de gama para la Edición 2024
- Agregar RFC para discutir el Comité Directivo de RustConf 2024
Convocatoria de pruebas
Un paso importante para la implementación de RFC es que las personas experimenten con el método 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 seguir adelante:
- Ninguna RFC emitió una convocatoria para pruebas esta semana.
Si usted es un implementador de características 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.
Próximos eventos
Eventos oxidados entre 2024-01-03 - 2024-01-31 🦀
Virtual
- 03/01/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 06/01/2024 | Virtual (Kampala, UG) | Círculo de Rust
- 09/01/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 11/01/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 11/01/2024 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 16/01/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 17/01/2024 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 18/01/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín
- 2024-01-21 | Virtual | Especialista en Rust
- 23/01/2024 | Virtual (Halifax, NS, CA) | Rust Halifax
- 24/01/2024 | Virtual (Berlín, DE) | Comunidad WeAreDevelopers
- 25/01/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 28/01/2024 | Virtual (Wrocław, PL) | Stacja IT Wrocław
- 30/01/2024 | Virtual (Búfalo, NY, EE. UU.) | Grupo de usuarios de Buffalo Rust
- 30/01/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
Europa
- 10/01/2024 | Colonia, DE | Colonia Rust
- 11/01/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 11/01/2024 | Wrocław, PL | Rust de Breslavia
- 13/01/2024 | Tampere, FI | Grupo Rust-lang de Finlandia
- 16/01/2024 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
- 17/01/2024 | Praga / Praga, CZ | Rust Praga
- 17/01/2024 | Zúrich, CH | Rust Zúrich
- 23/01/2024 | Aarhus, Dinamarca | Rust Aarhus
América del Norte
- 06/01/2024 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 08/01/2024 | Chicago, Illinois, Estados Unidos | Rust de plato profundo
- 09/01/2024 | Seattle, WA, EE. UU. | Cap Hill Rust Codificación/Hackeo/Aprendizaje
- 09/01/2024 | Minneapolis, MN, EE. UU. | Reunión de Rust en Minneapolis
- 09/01/2024 | Nueva York, NY, EE. UU. | Rust de Nueva York
- 14/01/2024 | Cambridge, MA, EE. UU. | Reunión de Boston Rust
- 16/01/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 17/01/2024 | Chicago, Illinois, Estados Unidos | Rust de plato profundo
- 18/01/2024 | Seattle, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 2024-01-22 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 24/01/2024 | Austin, TX, EE. UU. | Rust ATX
- 30/01/2024 | Cambridge, MA, EE. UU. | Reunión de Boston Rust
Si está ejecutando un evento de Rust, agréguelo al calendario para obtener que se menciona aquí. 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, vea el último hilo de Quién está contratando en r/rust
Frase de la semana
Algunas personas no creen en la vida después de la muerte... Rust no cree en la magia después de la compilación.
– Stephan Sokolow sobre los usuarios de Rust
¡Gracias a Todd Fleming 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