Esta semana en Rust #7
¡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
- hyper v1
- Rocket v0.5: Estable, asíncrono, Centinelas, Streams, SSE, Formularios, WebSockets y mucho más
- GlueSQL v0.15 - Soporte para Python, Redis y CSV
- Meilisearch lanza v1.5 - indexación más rápida, instantáneas bajo demanda e informes de Puffin
- Nutype v0.4.0 - newtype con restricciones
- Anuncio de open-ai-safe: un cliente de Rust de la API de OpenAI con seguridad de tipos
Observaciones/Pensamientos
- Una JVM en Rust parte 8 - Retrospectiva
- Rust 1.74.0: ¡Los 45 cambios en 19 minutos!
- Diversión con el análisis léxico y Rust
- Wasmtime y Cranelift en 2023
- Señales vs. servidores
- Interposición de funciones en Rust con upgrayedd
- Un encuentro cercano con el falso compartir
- Edge IoT con Rust en ESP: MQTT Publisher
- Comprobación de semver en presencia de elementos doc(ocultos)
- Empujar los "si" hacia arriba y los "fors" hacia abajo
- Construcción de troncos segmentados en Rust: ¡de la teoría a la producción!
- Escribir una biblioteca genérica en tiempo de ejecución asíncrono
- Ferrostar: Creación de un SDK de navegación multiplataforma en Rust (Parte 1)
Tutoriales de Rust
- ¡Así es como hice el tiempo de ejecución en el que se ejecuta este sitio web!
- [video] Tokenización y análisis sintáctico de un lenguaje de programación en Rust, por Adam Chalmers
Miscelánea
- Construyendo una mejor base para el futuro de Rocket
- [audio] Rust Digger con Gabor Szabo
- [video] Haciendo que el cliente BitTorrent (parcial) de Rust sea más razonable
- [video] Rust Release Train 1.74
- [video] EuroRust 2023
Crate de la semana
El crate de esta semana es rocket, un marco web obstinado que pretende ser realmente ergonómico sin dejar de ser rápido.
¡Gracias a David Mason por la sugerencia!
[Por favor, envíen sus sugerencias y votos para la próxima semana] submit_crate!
Convocatoria a la participación
¿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 - [REFACTOR]: [Zen] Validación de metadatos MCA
- Hyperswitch - [CARACTERÍSTICA] Estandarizar el campo de estado en la dirección de facturación y envío
- Hyperswitch - [BUG]: Los errores de deserialización de metadatos MCA deben ser 4xx
- Hyperswitch - [Característica]: [NMI] Sincronización con referencia de Hyperswitch
- Hyperswitch - [Característica]: [Zen] Sincronización con Hyperswitch Reference
- Ockam - La gestión de características 'Cargo.toml' debería permitir la construcción de cajas individuales con un conjunto de características predeterminado
- Ockam - Mejorar el manejo de errores de múltiples llamadas 'ockam tcp-outlet create'
- Ockam - Biblioteca - Adelgazar el 'NodeManagerWorker' para 'node / tcp'
- Ockam - Biblioteca - Adelgazar el 'NodeManagerWorker' para 'nodo / credenciales'
- Ockam - Comando - refactorizar para usar interfaces con tipo para implementar comandos para 'canal seguro' y 'oyente de canal seguro'
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.
Actualizaciones del Proyecto Rust
369 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- añadir objetivos arm64e-apple-ios y arm64e-apple-darwin
- eliminar asmjs
- add -Z 'llvm_module_flag'
- añadir una estructura más rica para las proyecciones MIR estables
- ajustar la IP del fotograma en las trazas inversas en relación con la base de la imagen para el objetivo SGX
- siempre apunte al intervalo de índice en caso de error de obligación de índice
- Evite iterar sobre mapas hash en astconv
- compilar el cuerpo de la corrutina pre-co-co-transform en caso de error
- garantizar la integridad de todas las ABI calculadas
- Se corrigió la inserción de instrucciones que se ejecutarán a lo largo del borde de retorno en la inserción
- handle intenta tener múltiples expresiones de cola 'cfg'd
- ignorar pero no asumir las obligaciones de la región de unificar encabezados en coherencia negativa
- ignorar los límites implícitos con marcadores de posición
- lint fijó punteros '#[must_use]' (en particular, 'Box' <T>donde 'T' es '#[must_use]') en 'unused_must_use'
- hacer que 'LayoutError::Cycle' lleve 'ErrorGuaranteed'
- hacer que Regionck se preocupe por los marcadores de posición en los componentes de Outlives
- más detalles cuando se espera una expresión pero se encuentra con un mal argumento de macro
- Nuevas mejoras en la normalización del solucionador
- patrones: no ICE cuando se encuentre con un corte de str sin procesar
- recuperar 'dyn' e 'impl' después de 'for<...>'
- eliminar la transformación incorrecta de RemoveZsts
- eliminar los valores predeterminados de código de bits heredados de todas las especificaciones de Apple
- manejar mejor los errores de tipo que involucran literales 'Self'
- Agregue algunas advertencias adicionales para elementos de diagnóstico duplicados
- sugerir la desreferenciación del LHS para binops como '&T == T'
- al resolver el error de '[rest..] ', sugerir '[descanso @ ..] «
- intente usar regiones de marcador de posición aproximadas al generar un error AscribeUserType en borrowck
- Cuando un enlace local sombrea un FN, apunte a FN def en caso de error de llamada
- Al encontrar el literal de llamada fn 'struct' con campos privados, sugiera todos los constructores
- Cuando use FN existente como módulo, no afirme que no existe
- Interpretar: Simplifique el manejo de turnos al ya no intentar manejar cantidades de turnos firmadas y no firmadas en la misma sucursal
- MIR personalizado: Bloques de limpieza de soporte
- emitir sonrisa
- agregar CoroutineWitness a los tipos cubiertos en smir
- miri: cargo-miri: cuando se verbose, imprime dónde se está construyendo el sysroot
- Miri: deshazte de nuestros últimos usos de 'set_var'
- miri: implementar los 16 operadores de comparación AVX para vectores SIMD de 128 bits
- Miri: Propuesta de soporte para ReallocArray Shim Linux/FreeBSD
- rehabilitar efectos en libcore
- si está disponible, use el pidfd de un niño para matar/esperar
- Solucionado el problema de redondeo con exponentes en 'FMT'
- añadir 'Buscar::seek_relative'
- impl más rasgos para 'ptr::Alignment,' add mask method
- feat: implementar 'DoubleEndedSearcher' para 'CharArray[Ref]Searcher'
- hashbrown: evite el uso de 'ptr::invalid_mut'
- futuros: fillBuf: no sondees por segunda vez en EOF
- futuros: eliminar el redundante 'impl Unpin'
- cargo-credential-1password: agregue el argumento '--account' que falta al comando 'op signin'
- cargo: añadir salida de color para 'cargo --list'
- cargo resolver: No hacer recuperaciones de git al actualizar los miembros del espacio de trabajo
- resolución de carga: Preferir MSRV, en lugar de ignorar incompatibles
- cargo: arreglar las invocaciones '--check-cfg' con cero características
- cargo: corregir mensaje de error para enlaces duplicados
- cargo: handle '$message_type' en diagnósticos JSON
- cargo: si el único camino es un bucle, entonces se cuenta como el camino más corto
- cargo: ignorar 'changing_spec_relearns_crate_types' en windows-gnu
- cargo: solo filtrar el objetivo si está en la raíz del paquete
- eliminar la creación innecesaria de variables 'desconocidas' y 'símbolos' al iterar sobre elementos en el renderizado de rustdoc
- rustdoc-search: optimize unifyFunctionTypes
- rustdoc-search: simplifica la ruta rápida de checkTypes
- rustfix: arreglar la inserción al principio
- clippy: 'impl_trait_in_params': evita ICE cuando la función con el tipo 'impl Trait' no tiene parámetros
- clippy: 'needless_return_with_question_mark' ignorar let-else
- clippy: cambia 'if_same_then_else' para que sea una pelusa de 'estilo'
- clippy: extiende 'maybe_misused_cfg' lint sobre 'cfg(test)'
- clippy: 'manual_memcpy' reduce las sugerencias de indexación cuando la longitud de la matriz es igual al rango del bucle
- clippy: implementar la nueva pelusa 'iter_over_hash_type'
- clippy: mejorar tal vez mal usado cfg
- clippy: lint 'flatten()' under 'lines_filter_map_ok'
- clippy: new lint 'clippy::join_absolute_paths'
- clippy: enseñar a 'eager_or_lazy' sobre operaciones aritméticas de pánico
- clippy: verificar <T>la semántica 'Borrow' para los tipos que implementan Hash, 'Borrow' <str>y 'Borrow<[u8]>'
- Rust-Analyzer: Diagnosticar la inseguridad incorrecta para las implicaciones de rasgos
- Rust-Analyzer: Diagnosticar elementos de asociación faltantes en el rasgo Impls
- Rust-analyzer: diagnosticar algunos casos de impl de rasgos huérfanos
- rust-analyzer: corrige la gramática de 'PathSegment'
- Rust-Analyzer: Fix builtin line! expansion
- Rust-analyzer: diagnostica todo en elementos anidados, no solo diagnósticos def
- rust-analyzer: maneja los valores constantes predeterminados en el diagnóstico 'trait_impl_missing_assoc_item'
Clasificación del rendimiento del compilador de Rust
Semana bastante tranquila, con solo un pequeño número de cambios estadísticamente significativos.
Triaje realizado por @simulacrum. Rango de revisión: 173b6e68.. 4f3da90
1 Regresiones, 1 Mejoras, 1 Mixto; 0 de ellos en rollups 60 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:
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] [edición estilo 2024] Combinar todas las exprs delimitadas como último argumento
- [disposición: fusionar] Problema de seguimiento para 'ptr::addr_eq'
- [disposición: fusionar] Estabilizar literales de cadena C
- [disposición: fusionar] Problema de seguimiento para mutex_unpoison
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
- Política de edición de especificadores de fragmentos de macros
- eRFC: Implementar delegación de funciones en rustc
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 2023-11-22 - 2023-12-20 🦀
Virtual
- 23/11/2023 | Virtual (Edmonton, AB, CA) | Grupo de usuarios de Edmonton R - Yegrug
- 28/11/2023 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 28/11/2023 | Virtual (Europa / África) | Rust para el almuerzo
- 29/11/2023 | Virtual (Cardiff, Reino Unido)| Rust y C++ Cardiff
- 30/11/2023 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 30/11/2023 | Virtual (Dublín, IE) | Rust Dublín
- 01/12/2023 | Virtual (Cardiff, Reino Unido)| Rust y C++ Cardiff
- 02/12/2023 | Virtual (Kampala, UG) | Círculo de Rust Kampala
- 05/12/2023 | Virtual (Berlín, DE) | OpenTechSchool Berlín
- 05/12/2023 | Virtual (Búfalo, NY, EE. UU.) | Encuentro de Buffalo Rust
- 06/12/2023 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 12/12/2023 | Virtual | Materia principal
- 12/12/2023 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 14/12/2023 | Virtual (Núremberg, DE) | Rust Nuremberg
- 18/12/2023 | Virtual (Múnich, DE) | Rust Múnich
- 20/12/2023 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
Europa
- 23/11/2023 | Biel/Bienne, CH | Rust Bern
- 28/11/2023 | Londres, Reino Unido | Grupo de usuarios de Rust London
- 30/11/2023 | Bruselas, BE | Grupo de usuarios de Rust de Bélgica
- 30/11/2023 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 30/11/2023 | Viena, AT | Rust Viena
- 30/11/2023 | Zúrich, CH| Rust Zúrich
- 06/12/2023 | Colonia, DE | Colonia Rust
- 07/12/2023 | Aarhus, Dinamarca | Rust Aarhus
- 07/12/2023 | Lille, FR | Rust Lille
- 14/12/2023 | Augsburgo, DE | Rust - Programación de sistemas modernos en Leipzig
- 18/12/2023 | Múnich, DE + Virtual | Rust Múnich
- 19/12/2023 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
América del Norte
- 22/11/2023 | Austin, TX, EE. UU. | Rust ATX
- 28/11/2023 | Pasadena, CA, EE. UU. | Pasadena Thursday Go / Rust
- 29/11/2023 | Chicago, Illinois, Estados Unidos | Rust de plato profundo
- 12/12/2023 | Seattle, WA, EE. UU. | Cap Hill Rust Codificación/Hackeo/Aprendizaje
- 19/12/2023 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
Oceanía
- 28/11/2023 | Canberra, ACT, AU | Rust Canberra
- 05/12/2023 | Aukland, Nueva Zelanda | Rust AKL
- 11/12/2023 | Perth, WA, AU | Grupo de Meetup de Rust Perth
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
Si lo requieres, mídelo. Esa es la respuesta simple. Todo lo demás son conjeturas.
– Johannes Lade sobre los usuarios de Rust
¡Gracias a Michael Bryan 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