Esta semana en Rust #37
¡Hola y bienvenidos a otro número de This Week in Rust!
Rust
¿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
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
por favor envíe un PR.
¿Quieres tener TWIR en tu bandeja de entrada? Suscríbete aquí.
- Anunciando Nio: un tiempo de ejecución asíncrono para Rust
- Anunciando la consulta de Rust
- "pigg" (la GUI GPIO de Raspberry Pi) versión 0.5.0, ahora con soporte para Pi Pico W a través de rust y embassy
- ¡Hola florecer! - Señales intuitivas en Rust
- ¡Ferroceno 24.11.0 con calificación médica y QNX ahora disponible!
- ¿Una idea novedosa sobre 'Functor' en Rust?
- Optimización de un kernel matmul de GPU Rust
- Claves de mapa y duraciones
- Rustlantis: Pruebas diferenciales aleatorias del compilador de Rust
- Tipos que no se pueden soltar
- Un grupo de hackers de 40 años prefiere Rust
- Tipos lineales malditos en Rust
- Inseguro para el trabajo
- Alineándome con el Principio Rector del Rust: mi camino para encontrar mi 'Por qué'
- [video] Construir con Naz - TLS en Rust con tokio, rustls, CFSSL
- Aventuras de optimización: hacer una carga de trabajo paralela de Rust 10 veces más rápida con (o sin) Rayon
- Construcción de primitivas asíncronas seguras para subprocesos en 150 líneas de Rust
- Envío seguro de datos del sensor DHT22 desde una placa ESP32 a PostgreSQL
- Escribir un GC de trazado de marca y barrido en Rust
El crate de esta semana es postcard, un serializador/deserializador compatible con '#[no_std]' probado en batalla, bien documentado, orientado a su uso en dispositivos integrados.
¡Gracias a Reto Trappitsch por la sugerencia!
Por favor, envíen sus sugerencias y votos para la próxima semana!
Las RFC se beneficiarían de las pruebas de usuario antes de avanzar:
- 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.
necesitan pruebas.
Algunas de estas tareas también pueden tener mentores disponibles, visite la página de tareas para obtener más información.
- Diesel - Agrega soporte para funciones postgres json/jsonb actualmente no compatibles
- Diesel - Agregar funciones y operadores sqlite json/jsonb que faltan
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 to TWiR o poniéndote en contacto con X (antes Twitter) o Mastodon!
¿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.
- Rust en París 2025 | Fecha límite: 30 de noviembre de 2024 | París, FR | 15 marzo 2025
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 en X (anteriormente Twitter) o Mastodon!
- FOSDEM 2025 Rust devroom | Fecha límite: 1 de diciembre de 2024 | Bruselas, BE | 1 de febrero de 2025
405 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- 'lints_that_dont_need_to_run': nunca te saltes las pelusas reportadas en el futuro
- aarch64 softfloat target: siempre pasa floats en registros int
- tenga en cuenta 'wasm32v1-none' al exportar símbolos TLS
- añadir métodos de 'visit' a los nodos AST que ya tienen 'walk's en los visitantes AST
- agregar diagnóstico específico para usar la macro 'macro_rules' como atributo/derivar
- añadir visitas a nodos que ya tienen 'flat_maps' en 'ast::MutVisitor'
- permitir deshabilitar la instrumentación de ASan para globales
- Efectos de rescate en el solucionador antiguo si el yo es ty var
- btree: no fugar valor si el destructor de llaves falla
- constifica también los rasgos 'Deref'/'DerefMut'
- continuar la transición de 'ParamEnv' a 'TypingEnv'
- corregir la lista de niveles de 'wasm32-wasip2'
- default-enable 'llvm_tools_enabled' cuando no hay 'config.toml' presente
- distinga el desbordamiento y el no implementado en 'Step::steps_between'
- no permitir que '-Zunstable-options' tome un valor
- elimine la información de depuración en lugar de entrar en pánico si excedemos la capacidad de LLVM para representarlo
- emscripten: enlace con '-sWASM_BIGINT'
- arreglar el triple objetivo de LLVM para 'x86_64-win7-windows-msvc'
- arreglar ASM goto con salidas y moverlo a una puerta de características separada
- arreglar la extracción de arg de cierre en 'extract_callable_info', generalizarlo a cierres asíncronos
- implementar el objetivo del efecto '~const Destruct' en el nuevo solucionador
- implementar el objetivo de rasgo '~const Fn' en el nuevo solucionador
- implementar los límites de elementos '~const' en RPIT
- implementar el RFC de campos inseguros
- hacer que 'PointerLike' sea opcional en lugar de incorporado
- Hacer que los bloques de etiquetas ASM sean un contexto seguro
- fusionar '-Zhir-stats' en '-Zinput-stats'
- señale la definición 'const' cuando se usa en lugar de un enlace en una declaración 'let'
- Bonito estampado asíncrono fn azúcar en opacos y límites de rasgos
- reducir los falsos positivos de tail-expr-drop-order de los valores consumidos (intento #2)
- refactorizar los predicados 'donde' y reservar para el soporte de atributos
- eliminar 'is_trivially_const_drop'
- eliminar código de bits heredado para iOS
- reportar la pelusa 'unexpected_cfgs' en macros externas
- rustc: falla rápido al compilar un archivo fuente de más de 4 GiB
- mostrar pelusa 'abi_unsupported_vector_types' en futuros informes de rotura
- Dejen de ser tan bailables en la asamblea de candidatos
- Resolución de almacenamiento para segmentos de módulo propio y de raíz de caja
- Métricas de uso de características inestables
- use 'ConstArgKind::P ath' para todas las rutas de un solo segmento, no solo los parámetros bajo 'min_generic_const_args'
- use 'confstr(_CS_DARWIN_USER_TEMP_DIR, ...)' como un 'TMPDIR' de retroceso a Darwin
- use arc4random de libc para el objetivo RTEMS
- usar atributos para 'dangling_pointers_from_temporaries' lint
- interpretar: no hacer ICE cuando un promocionado falla con OOM
- miri: añadido epoll y eventfd para Android
- Miri: eventfd: Ajustes de comentarios
- Miri: Llenar la tabla de mapeo de errores de E/S de Windows
- Miri: seguimiento de #4052, haciendo un contexto de evaluación de Miri fn para 'strerror_r'
- Miri: Implementa la raíz cuadrada sin depender de los flotantes del host
- miri: refactorizar 'AnonSocket::read/write' para bloquear socketpair
- Miri: Simplificar las pruebas de bloqueo de hilos
- Miri: sysconf añadiendo algunas constantes más
- Miri: Corrección de intercepción de sysconf para sistemas solarish
- miri: vitrina de trofeos: añadir 'RwLock::d owngrade' bug
- miri: usa las APIs de 'PathBuf' para hacer correctamente alguna manipulación de rutas multiplataforma
- Resolver ajustes
- finalizar la eliminación de 'Revelar'
- estabilizar la edición de 2024
- estabilizar 'Ipv6Addr::is_unique_local' e 'Ipv6Addr::is_unicast_link_local'
- estabilizar 'const_float_methods'
- estabilizar 'const_pin_2'
- constificar mínimamente 'Agregar'
- marque '<[T; N]>::as_mut_slice' con el especificador 'const'
- marque 'get_mut' y 'set_position' en 'std::io::Cursor' como const
- reducir el tamaño de implementación de la 'Pantalla' entera
- std: permitir el uso posterior a la principal de primitivas de sincronización
- implement 'OsString::truncate'
- añadir 'AsyncFn*' al preludio en todas las ediciones
- añadir los métodos 'BorrowedBuf::into_filled{,_mut}' para permitir el retorno del búfer con la vida útil original
- add 'std::thread::add_spawn_hook'
- añadir 'vec_deque::Iter::as_slices' y amigos
- soporte 'each_ref' y 'each_mut' en '[T; N]' en expresiones constantes
- Soporte de entrada/salida en registros vectoriales del ensamblaje en línea S390X (bajo la función 'asm_experimental_reg')
- soporte s390x z13 vector ABI
- UEFI: proceso: agregar soporte para args
- hashbrown: versión v0.15.2
- cargo: 'test(rustflags)': Verifica -Cmetadata directamente, no a través de -Cextra-filename
- cargo: permitir que los registros omitan campos vacíos/predeterminados en JSON
- cargo: verifique que el objetivo de compilación admita std cuando se compila con -Zbuild-std=std
- cargo: documentos para campos JSON de registro opcionales
- cargo: feat: estabilizar Edición 2024
- cargo: mejorar el manejo de errores cuando PathSource es relativo
- cargo: test: address test output nondeterminism
- Cargo: prueba: cambiar de ''exec_with_output'' a 'correr'
- rustdoc: no llames a 'to_string', ya es impl Display
- bindgen: añadir la función 'raw_ref_macros'
- clippy: añadir nueva pelusa 'doc_include_without_cfg'
- clippy: añadir nota sobre la advertencia para 'cfg(doc)'
- clippy: no considerar los tiempos de vida en los tipos acotados sin usar (arreglar 'extra_unused_lifetimes' FP)
- clippy: sincronización y automatización de lanzamientos
- clippy: usa un mejor mensaje para 'unnecessary_map_or' lint
- rust-analyzer: convertir 'add_braces' a la abstracción de SyntaxFactory SyntaxEditor
- Rust-analyzer: use marcadores de posición de fragmentos para los brazos de coincidencia generados
- Rust-analyzer: Arregla un desbordamiento de pila al calcular el tamaño de una 'estructura' que se incluye a sí misma como el campo de cola
- Rust-analyzer: Mejorar el manejo de selección para la asistencia 'merge_match_arms'
- rust-analyzer: migrar 'reorder_impl_items' Assist para usar 'SyntaxFactory'
Triaje realizado por @kobzol
7d40450b.. 7db7489f
Resumen:
| (instrucciones:u) | media | Gama | Recuento |
|---|---|---|---|
| Regresiones ❌ (primario) | 0.6% | [0.1%, 3.6%] | 57 |
| Regresiones ❌ (secundaria) | 0.6% | [0.0%, 2.7%] | 100 |
| Mejoras ✅ (primario) | -0,5% | [-1.5%, -0.2%] | 11 |
| Mejoras ✅ (secundaria) | -0,4% | [-0.5%, -0.3%] | 7 |
| Todos ❌✅ (primarios) | 0.4% | [-1,5%, 3,6%] | 68 |
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)
- No se aprobaron RFC esta semana.
Cada semana, el equipo
- [disposición: fusionar] [RFC] ABI explícito en extern
- [disposición: fusionar] Problema de seguimiento para 'sub_ptr' (característica 'ptr_sub_ptr')
- [disposición: fusionar] Estabilizar variantes sin signo y flotantes de la función 'num_midpoint'
- [disposición: fusionar] Problema de seguimiento para Vec::extract_if y LinkedList::extract_if
- [disposición: fusionar] Estabilizar noop_waker
- [disposición: fusionar] Estabilizar const_maybe_uninit_write
- [disposición: fusionar] Problema de seguimiento para la ruta::file_prefix
- [disposición: fusionar] Estabilizar '#[diagnóstico::d o_no_recomendar]'
- [disposición: fusionar] Hacer que missing_abi lint advierta por defecto.
- [disposición: fusionar] Problema de seguimiento para ptr::fn_addr_eq
- [disposición: fusionar] Arreglar y dejar de usar home_dir()
- No hay problemas de seguimiento de carga ni PR ingresaron al período de comentarios finales esta semana.
- Ninguna propuesta de equipo lingüístico entró en el Período Final de Comentarios esta semana.
- No hay RFC de referencia de idioma ingresó al Período Final de Comentarios esta semana.
- No hubo problemas de seguimiento de pautas de código inseguro o PR ingresaron al período de comentarios finales esta semana.
- [new] crates.io: Eliminar las eliminaciones de versiones del RFC de "eliminaciones de cajas"
- [nuevo] RFC: Agregar un nivel de lint semánticamente no bloqueante
Eventos oxidados entre 2024-11-27 - 2024-12-25 🦀
- 28/11/2024 | Virtual (Charlottesville, Carolina del Norte, Estados Unidos) | Reunión de Rust en Charlottesville
- 28/11/2024 | Virtual (Nürnberg, DE) | Rust de Núremberg
- 29/11/2024 | Virtual (Jersey City, NJ, EE. UU.)| Jersey City, Elegante y Curiosa Cooperativa del Club de Codificadores
- 02/12/2024 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 03/12/2024 | Virtual (Buffalo, NY, EE. UU.) | Encuentro de Buffalo Rust
- 03/12/2024 | Virtual (San Francisco, CA, EE. UU.) | Centro Blockchain SF
- 04/12/2024 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 05/12/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 05/12/2024 | Virtual (Miami, FL) | Eventos del grupo de usuarios de Java en Miami
- 06/12/2024 | Virtual (Jersey City, NJ, EE. UU.)| Jersey City, Elegante y Curiosa Cooperativa del Club de Codificadores
- 07/12/2024 | Virtual (Kampala, UG) | Círculo de Rust Kampala
- 08/12/2024 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 2024-12-10 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 11/12/2024 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 12/12/2024 | Virtual (Charlottesville, Carolina del Norte, Estados Unidos) | Reunión de Rust en Charlottesville
- 12/12/2024 | Virtual (Nürnberg, DE) | Rust de Núremberg
- 12/12/2024 | Híbrido: presencial y virtual (Seattle, WA, EE. UU.) | Reunión de Rust en Seattle
- 13/12/2024 | Virtual (Jersey City, NJ, EE. UU.)| Jersey City, Elegante y Curiosa Cooperativa del Club de Codificadores
- 17/12/2024 | Virtual (San Francisco, CA, EE. UU.) | Centro Blockchain SF
- 17/12/2024 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 19/12/2024 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 19/12/2024 | Virtual (Ciudad de México, DF, MX) | Rust MX
- 20/12/2024 | Virtual (Jersey City, NJ, EE. UU.)| Jersey City, Elegante y Curiosa Cooperativa del Club de Codificadores
- 24/12/2024 | Virtual (Dallas, TX, EE. UU.) | Rust de Dallas
- 2024-12-10 | Johannesburgo, ZA | Reunión de Rust en Johannesburgo
- 28/11/2024 | Bangalore/Bangalore, IN | Rust de Bangalore
- 30/11/2024 | Tokio, JP | Rust de Tokio
- 03/12/2024 | Ra'anana, IL | Reuniones de investigación y desarrollo de Abra
- 27/11/2024 | Dortmund, DE | Rust Dortmund
- 28/11/2024 | Aarhus, DK | Rust Aarhus
- 28/11/2024 | Augsburgo, DE | Encuentro de Rust Augsburgo
- 28/11/2024 | Berlín, DE | OpenTechSchool Berlín + Rust Berlin
- 28/11/2024 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 28/11/2024 | Gdansk, PL | Rust Gdansk
- 28/11/2024 | Hamburgo, DE | Encuentro de Rust Hamburgo
- 28/11/2024 | Manchester, Reino Unido | Rust de Manchester
- 28/11/2024 | Praga, CZ | Rust Praga
- 30/11/2024 | Estocolmo, SE | Estocolmo Rust
- 03/12/2024 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 04/12/2024 | Girona, ES | Rust Girona
- 04/12/2024 | Köln, DE | Colonia Rust
- 04/12/2024 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
- 04/12/2024 | París, FR | Rust Paris
- 05/12/2024 | Gdansk, PL | Rust Gdansk
- 05/12/2024 | Zlin, CZ | Rust Moravia
- 06/12/2024 | Moscú, RU | RustCon RU
- 11/12/2024 | Reading, Reino Unido | Taller de lectura de Rust
- 12/12/2024 | Ámsterdam, Países Bajos | Grupo de desarrolladores de Rust en Ámsterdam
- 17/12/2024 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
- 27/11/2024 | Austin, TX, Estados Unidos | Rust ATX
- 05/12/2024 | Montreal, QC, CA | Rust Montreal
- 05/12/2024 | San Luis, MO, EE. UU. | STL Rust
- 2024-12-10 | Ann Arbor, Michigan, Estados Unidos | Rust de Detroit
- 12/12/2024 | Mountain View, CA, EE. UU. | Dojo Hacker
- 12/12/2024 | Híbrido: presencial y virtual (Seattle, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 16/12/2024 | Minneapolis, MN, Estados Unidos | Reunión de Rust en Minneapolis
- 17/12/2024 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 23/12/2024 | Ferndale, Michigan, Estados Unidos | Rust de Detroit
- 04/12/2024 | Sídney, Australia | Rust de Sídney
- 08/12/2024 | Canberra, Australia | Grupo de usuarios de Canberra Rust
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, consulte el último hilo de Quién está contratando en r/rust
Nunca dejaré de sorprenderme positivamente por clippy
llogiq se aprecia bastante a sí mismo con respecto a su 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