Esta semana en Rust #21
¡Hola y bienvenidos a otro número de This Week in Rust!
Rust
¿Quieres que se mencione algo? Etiquétanos en @ThisWeekInRust en 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.
- Rust para kernels de Linux integrados
- Kira - Release v0.9.0
- Cushy v0.3: Nuevos widgets, captura fuera de pantalla, integraciones de Plotters y Tokio, y más
- bbolt-rs v1.3.8
- Maelstrom: Un ejecutor de pruebas hermético y agrupado para Rust (y es rápido)
- Publicada la versión r3bl_cmdr v0.0.12
- Iroh 0.16 - Un mejor 'cliente'
- Mantenimiento del proyecto Rust a largo plazo
- Los métodos deben ser seguros para los objetos
- Las referencias son como saltos
- Rust 1.78: Impacto en el rendimiento de la corrección de alineación de memoria de 128 bits
- Cómo: Egui con webworkers
- Uso de build.rs para integrar aplicaciones de Rust con bibliotecas del sistema como un profesional
- Actores de Rust + ArcMutex: manéjelo con cuidado
- Rust a través de los siglos
- Mezcla de rayón y tokio por diversión y pérdida de cabello
- Tareas asíncronas de backend de larga duración en tauri v2
- Listas enlazadas increíblemente rápidas
- Tipos existenciales en Rust
- Manejo de errores para grandes proyectos de Rust - Una inmersión profunda en las prácticas de GreptimeDB
- Construyamos un Balanceador de Carga en Rust - Parte 1
- [video] Build with Naz : tokio tracing & OTel and how to use it in Rust
El crate de esta semana es states-scope-guard, una biblioteca que admite un patrón RAII más flexible para la gestión de recursos declarados.
¡Gracias a Evian Zhang 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.
- greptimedb - Añadir más pruebas para Copiar desde
- greptimedb - Suma de comprobación para manifiestos
- greptimedb - Adición de tipo JSON a GreptimeDB*
- greptimedb - Marco de recursos restringidos para entornos integrados*
- GreptimeTeam - Diseñar e implementar un programa de evaluación similar a TPC-DS/TPC-H para escenarios de series temporales*
"*" = Problemas abiertos para las solicitudes de los estudiantes a través de OSPP. A los estudiantes seleccionados se les asignará un mentor (s) y pueden recibir bonificaciones. Regístrese a través del enlace OSPP.
Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.
¿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 Argentina junio 2024 | Cierra el 31/05/2024 | Buenos Aires, AR | Fecha del evento: 2024-06-04
- EuroRust 2024 | Cierra el 03/06/2024 | Viena, Austria y en línea | Fecha del evento: 2024-10-10
- Computación científica en Rust 2024 | Cierra 14/06/2024 | En línea | Fecha del evento: 2024-07-17 - 2024-07-19
- 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 de envío a través de un PR a TWiR.
329 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- Analizar visitante: construir árbol de prueba en la sonda
- consolidar los códigos de causa de obligación para las cláusulas where
- corregir la estabilización const de 'last_chunk' para los segmentos
- Cobertura: Soporte de cobertura de sucursal para let-else e if-let
- cobertura: simplificar aún más la extracción de información cartográfica de MIR
- Mostrar puntos de referencia de tiempo de pared con precisión de subnanosegundos
- no hacer ICE en 'AnonConst's en 'diagnostic_hir_wf_check'
- [no hacer ICE en 'diagnóstico::on_unimplemented'] malformado en el extranjero](https://github.com/rust-lang/rust/pull/124683)
- no añadir un asterisco inicial en el 'PartialEq'
- no ice cuando no podemos evaluar una const a un valtree en el nuevo solucionador
- no llames a 'env::set_var' en 'rustc_driver::install_ice_hook'
- Se corrigieron los mensajes de error para 'break' dentro de las corrutinas
- arreglar ICE al lanzar un tipo con error
- arreglar los visitantes 'MemCategorization' y 'ExprUse' para el nuevo solucionador (esta vez es mejor)
- corregir lógica insuficiente al buscar la asignación subyacente
- arreglar más ICEs en 'diagnostic::on_unimplemented'
- corregir el mensaje de error de análisis para metaelementos
- manejar expresiones Deref en 'invalid_reference_casting'
- manejar proyecciones de campo como la indexación de sectores en 'invalid_reference_casting'
- ignorar 'RUSTC_WRAPPER' vacío en el arranque
- ignorar los argumentos genéricos en las rutas de los atributos
- implementar 'as_chunks' con 'split_at_unchecked'
- implementar el formateador lldb para enumeraciones "codificadas por clang" (LLDB 18.1+) (V3)
- mejorar la depurabilidad de 'rustc_parse::P arser
- hacer '#! [característica]' sugerencia 'MaybeIncorrect'
- hacer que 'Ty::builtin_deref' solo devuelva un 'Ty'
- asegúrese de que consumimos un arg genérico cuando revisamos turbofish mal escrito
- asegúrese de que no negamos las variables macro con nombres de palabras clave
- Ergonomía del partido 2024: que los patrones '&' se coman a '&mut'
- Match Ergonomics 2024: migration lint
- pretty-print let-else con paréntesis añadidos cuando sea necesario
- Eliminar llaves al fijar un árbol de uso anidado en un solo elemento
- cambiar el nombre de 'Generics::p arams' a 'Generics::own_params'
- simplificar las ocurrencias de 'usar caja::rustc_foo::bar'
- separar 'ty::AliasTerm' de 'ty::AliasTy'
- eleva 'TraitRef' a 'rustc_type_ir'
- eleva varios tipos de '*Predicado' a 'rustc_type_ir'
- usar menos orígenes al crear variables de tipo
- patrones nunca: patrones nunca inferiores a 'Inalcanzable' en MIR
- evite 'alloca's en codegen para sentencias simples 'mir::Aggregate'
- interpretar/miri: mejores errores al fallar 'offset_from'
- miri: 'io::Error' manejando: mantener el 'io::Error' completo durante más tiempo para que podamos dar mejores errores
- Miri: Un poco de organización intrínseca
- miri: permitir que los objetivos de prueba se establezcan a través de CLI args
- Miri: Intrínsecos: Entra en pánico cuando se usan incorrectamente
- Miri: hacer que 'MIRI_TEST_TARGET' y 'RUSTC_BLESS' sean algo completamente interno
- miri: devuelve un puntero no nulo de 'malloc(0)'
- miri: soporte 'f*_algebraic'
- miri: use un puntero no nulo para el tamaño 0 posix memalign
- codegen: memmove/memset no puede ser atemporal
- codegen-cranelift: traducir MIR a clif ir en paralelo con rustc paralelo
- estabilizar 'byte_slice_trim_ascii' por '&[u8]'/'&str'
- estabilizar 'seek_seek_relative'
- relajar los requisitos del asignador en algunas API de Rc/Arc
- 'f16::is_sign_{positive,negative}' fueron compuertas en f128
- 'io::Write::write_fmt': pánico si el formateador falla cuando el flujo no falla
- 'std::net: Socket::new_raw' ahora establecido en 'SO_NOSIGPIPE' en freebsd
- 'std::rand': añadiendo solaris/illumos para el soporte de getrandom
- cargo: Ejemplo de agregar scripts de compilación solo locales en los documentos de check-cfg
- cargo: corrección: construir solo la biblioteca de artefactos especificada cuando hay varios tipos disponibles
- rustdoc: formulario de búsqueda desduplicado HTML
- rustdoc: usa la estabilidad, en lugar de las características, para decidir qué mostrar
- clippy: 'significant_drop_in_scrutinee': Corregir falsos positivos debido a falsas caídas de expresiones de lugar
- clippy: añadir nueva pelusa 'doc_lazy_continuation'
- clippy: agregar nuevos lint que no permiten cambiar el nombre de los parámetros en las funciones de rasgo
- clippy: corrige falso positivo por falta de consideración del llamador mutable
- clippy: corrección: fusionar múltiples sugerencias en una sola sugerencia de varios tramos en 'needless_late_init'
- clippy: fix: use 'hir_with_context' para producir los fragmentos correctos para 'assigning_clones'
- clippy: maneja 'rustc_on_unimplemented' en 'duplicated_attributes'
- clippy: ignora las pelusas '_to_string' en el código 'from_expansion'
- clippy: conflictos de prioridad directa de lint en '[workspace.lints]'
- clippy: hacer que 'from_str_radix_10' omita el contexto constante
- clippy: nueva pelusa: 'macro_metavars_in_unsafe'
- rust-analyzer: arreglar OOM causado por la búsqueda de términos
- rust-analyzer: arreglar 'source_range' por 'INT_NUMBER' en la finalización
- rust-analyzer: corrección: mejorar los desplazamientos literales confusos
- rust-analyzer: fix: mantener paréntesis cuando la precedencia de la expr interna es menor que la externa
- rust-analyzer: corrección: informar de todos los errores del protocolo LSP con 'invalid_data'
- rust-analyzer: corrección: informar tanto de errores de E/S como de errores 'main_loop'
- rust-analyzer: implementar análisis de atributos inseguros
- rust-analyzer: use el campo repository para enlazar al repositorio
reducciones de tamaño binario causadas por la generación de menos IR de LLVM.
Triaje realizado por @kobzol
69f53f5e.. 9105c57b
Resumen:
(instrucciones:u) | media | Gama | Recuento |
---|---|---|---|
Regresiones ❌ (primaria) | 0.4% | [0.2%, 0.9%] | 8 |
Regresiones ❌ (secundaria) | 0.9% | [0,2%, 2,4%] | 18 |
Mejoras ✅ (primaria) | -1,1% | [-2,3%, -0,2%] | 51 |
Mejoras ✅ (secundaria) | -0,6% | [-1.4%, -0.3%] | 19 |
Todos ❌✅ (primario) | -0,9% | [-2,3%, 0,9%] | 59 |
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
- Esta semana no se aprobaron RFC.
Cada semana, el equipo
- Ninguna RFC entró en el Período de Comentarios Final esta semana.
- [disposición: fusionar] Problema de seguimiento para 'IpvNAddr::{BITS, to_bits, from_bits}' ('ip_bits')
- [disposición: fusionar] Añadir 'size_of' y 'size_of_val' y 'align_of' y 'align_of_val' al preludio
- [disposición: fusionar] desplazamiento: permitir desplazamiento de cero bytes en punteros arbitrarios
- [disposición: fusionar] Añadir soporte '-' (stdin) en rustdoc
- [disposición: fusionar] Advertir (o error) cuando se hace referencia al ctor 'Self' del elemento externo en el elemento anidado interno
- [disposición: fusionar] Golpear 'elided_lifetimes'_in_associated_constant para denegar
- [disposición: fusionar] Decidir sobre la validez de los metadatos de puntero/referencia ancho con cola de corte
- [nuevo] [RFC] estáticas definibles externamente
- [nuevo] Ámbito 'impl Trait for Type'
- [nuevo] [RFC] 'core::marker::Freeze' in bounds
- [nuevo] [RFC] funciones implementables externamente
- [nuevo] RFC para doc_cfg, doc_cfg_auto, doc_cfg_hide y doc_cfg_show características
Eventos oxidados entre 2024-05-15 - 2024-06-12 🦀
- 15/05/2024 | Virtual (Ankara, TR) | Comunidad de Rust de Türkiye
- 15/05/2024 | Virtual (Cardiff, Reino Unido) | Rust y C++ Cardiff
- 15/05/2024 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 16/05/2024 | Virtual (Ankara, TR) | Comunidad de Rust de Türkiye
- 16/05/2024 | Virtual (Charlottesville, VA, EE. UU.) | Reunión de Charlottesville Rust
- 17/05/2024 | Virtual | Capacitación 4 Programadores LLC
- 2024-05-21 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 23/05/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 23/05/2024 | Virtual (Israel) | Rust en Israel
- 28/05/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 2024-05-28 y 2024-05-28 | Virtual | Materia principal
- 30/05/2024 | Virtual + Presencial (Barcelona, ES) | Materia principal y BcnRust
- 30/05/2024 | Virtual (Charlottesville, Carolina del Norte, EE. UU.) | Reunión de Charlottesville Rust
- 04/06/2024 | Virtual (Búfalo, NY) | Encuentro de Buffalo Rust
- 05/06/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 06/06/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 11/06/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 01/06/2024 | Kampala, UG | Círculo de Rust Kampala
- 2024-05-22 | Singapur, SG | Reunión de SG Rust
- 16/05/2024 | Augsburgo, DE | Encuentro de Rust Augsburgo
- 16/05/2024 | París, FR | Rust Paris
- 2024-05-21 | Aarhus, Dinamarca | Rust Aarhus
- 2024-05-21 | Zúrich, CH | Rust Zúrich
- 2024-05-22 | Leiden, NL | Desarrollo de software preparado para el futuro por FreshMinds
- 23/05/2024 | Berna, CH | Rust Bern
- 23/05/2024 | Łodz, PL | Mobica
- 23/05/2024 | Manchester, Reino Unido | Rust Manchester
- 24/05/2024 | Burdeos, FR | Rust Burdeos
- 2024-05-25 | Estocolmo, SE | Estocolmo Rust
- 2024-05-28 - 2024-05-30 | Berlín, DE | Oxidar
- 30/05/2024 | Barcelona, ES | Materia principal y BcnRust
- 30/05/2024 | Berlín, DE | Rust Berlin
- 30/05/2024 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 30/05/2024 | Oslo, NO | Rust Oslo
- 05/06/2024 | Hamburgo, DE | Encuentro de Rust Hamburgo
- 06/06/2025 | Vilnius, LT | Vilna Rust
- 16/05/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 16/05/2024 | Seattle, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 20/05/2024 | Somerville, MA, EE. UU. | Reunión de Boston Rust
- 2024-05-21 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 2024-05-22 | Austin, TX, EE. UU. | Rust ATX
- 2024-05-25 | Chicago, Illinois, Estados Unidos | Rust de plato profundo
- 30/05/2024 | Mountain View, CA, EE. UU. | Reunión de Rust de Mountain View
- 31/05/2024 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 08/06/2024 | Somerville, MA, EE. UU. | Reunión de Boston Rust
- 28/05/2024 | Sídney, Nueva Gales del Sur, Australia | Rust Sydney
- 06/06/2024 | Buenos Aires, AR | Rust en Español | Rust Argentina
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
Desafortunadamente, la mayoría de la gente parece haber tomado la lección equivocada de Rust. Ven todo este negocio con vidas y propiedad como un desastre sucio que Rust ha tenido que adoptar porque quería evitar la recolección de basura. ¡Pero esto es completamente al revés! Rust adoptó reglas en torno al estado mutable compartido y esto le permitió evitar la recolección de basura. De todos modos, estas reglas son una buena idea.
¡Gracias a Jules Bertholet por la sugerencia de última hora!
¡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