Esta semana en Rust #46
¡Hola y bienvenido a otro número de esta semana en Rust! Rust en lenguaje programación que permite todo el mundo crear software fiable y eficiente. Este es un resumen semanal de su progreso y comunidad. ¿Quieres que mencionemos algo? Etiquétanos en @ThisWeekInRust en X (antes Twitter) o @ThisWeekinRust en mastodon.social, o envíanos un solicitud extracción. ¿Quieres participar? Nos encantan la contribuciones.
Esta semana en 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 en esta semana, por favor envía un PR.
¿Quieres tener TWIR en tu bandeja e entrada? Suscríbet aquí.
Actualizaciones de la comunidad en Rust 🥰
Oficial
- Rust 2024 en el canal beta | Blog de Rust
- Actualización de los Objetivos del Proyecto de Diciembre | Blog de Rust
Fundación
Actualizaciones de proyectos/herramientas
- La edición 2024 de The Rust toma forma
- Defmt v1.0
- registro cambio de rust-analyzer #270
- ¡Lanzamiento de Git-Cliff 2.8.0! (un generador de registro cambio altamente personalizable)
Observaciones/Pensamientos
- Reflexiones sobre los nombres de
trait
de los iteradores - La función mágica
- Ecuatabilidad personalizada en Rust: más allá de los pasos estándar
- [audio] Rahul Kumar: ¿Por qué verificar la biblioteca estándar de Rust?
- [audio] Volvo con Julius Gustavsson
Tutoriales en Rust
Crate
de la semana
La crate
de esta semana es embed_it, una crate
que te ayuda a incrustar activos en tu binario y generar implementacione de struct/trait
para cada archivo o directorio.
¡Gracias a Riberk por sugerir su propia crate!
Por favor, envíen sus sugerencias y votos para la próxima semana!
Llamada a pruebas
Un paso importante en la implementación de una RFC es que las personas experimenten con la implementación y brinden retroalimentación, especialmente antes de su estabilización. Las siguientes RFCs se beneficiarían de pruebas por parte de los usuarios antes de continuar avanzando:
RFCs
- No se emitieron convocatorias para pruebas esta semana.
Rust
- No se emitieron convocatorias para pruebas esta semana.
Rustup
- No se emitieron convocatorias para pruebas esta semana.
Si es un implementador de funciones y desea que su RFC aparezca en la lista anterior, agregue una nueva 'call-for-testing' 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 ser evaluados.
Convocatorio a la participación
CFP - Proyectos
¿Siempre quisiste contribuir a proyecto de código abierto pero no sabías por dónde empezar? ¡Cada semana destacamos algunas tarea en la comunida de Rust para que elijas y comiences!
Alguna 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 proyect de Rust y estás buscando colaboradores, por favor envía tareas aquí a través de un PR to TWiR o poniéndote en contacto en X (antes Twitter) o Mastodon!
CFP - Eventos
¿Eres un orador nuevo experimentado que busca un lugar para compartir algo genial? Esta sección destaca los eventos que se están planificando y que está aceptando presentaciones par unirse a su evento como orador.
Si eres organizador de un evento y esperas ampliar su alcance, envía un enlace a la página web a través de un PR a TWiR o contactándonos en X (antes Twitter) o Mastodon.!
Actualizaciones del Proyecto Rust
408 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]
- Soporte para QNX 7.1 con 'io-sock'+libstd y QNX 8.0 (solo 'no_std')
- Marcar todos los objetivos NuttX como objetivos de nivel 3 y admitir la biblioteca estándar
- Añadir soporte NuttX para objetivos AArch64 y ARMv7-A
- Añadir '#[optimize(none)]'
- Considerar el préstamo mutable en las sugerencias de argumentos
- Añadir sugerencia para convertir 'target_feature' en punteros fn
- Agregar solución alternativa para bloqueo paralelo en Rust con errores retrasados
- Cambiar tipo de retorno de tupla 'collect_and_partition_mono_items' a struct
- Codegen: Almacenar ScalarPair a través de memset cuando un lado es undef y el otro puede ser memset
- Compilador: Establecer 'target_abi = "ilp32e"' en todos los objetivos riscv32e
- Cobertura: Preparación para cambios en creación de contadores
- Detectar campos faltantes con valores predeterminados y sugerir '..'
- Imprimir parámetros const después de parámetros de tipo
- Mejorar coerción cuando autoderef falla en nuevo solver
- No soltar tipos sin glue para construir caídas en llamadas FFI
- Evitar selección de objetivos anidados 'T: FnPtr' en diagnósticos del nuevo solver
- Habilitar lint 'unreachable_pub' en crates 'Test' y 'proc_macro'
- Habilitar sanitizadores de kernel para aarch64-unknown-none-softfloat
- Corregir proveedor GDB para 'OsString' en Windows
- Corregir ICE: brazo múltiple sin 'false_edge_start_block' en patrones
- Prohibir uso de variantes const/ty 'hir::Infer' en contextos ambiguos
- Manejar límites de traits globales que definen tipos asociados
- Implementar directiva 'needs-subprocess' y limpiar tests
- Mejorar diagnóstico de nombres esperados en check-cfg
- Alinear 'DIFlags' con 'LLVMDIFlags' en API de LLVM-C
- Convertir advertencia 'wasm_c_abi' en error grave
- Puntuar intervalos UTF-8 inválidos en código fuente
- Registrar correctamente intervalos let-var para expansiones no TT
- Reportar error correcto cuando tipo de objeto default se autoreferencia
- Eliminar soporte para atributo inestable '#[start]'
- Eliminar usos de 'QueryNormalizer' en el compilador
- Reformular errores por posible falta de crate en árbol de DEP
- Rediseñar reducción de trait para Dyn
- Acortar salida del enlazador sin '--verbose'
- Mostrar salida del enlazador incluso con éxito
- Simplificar 'parse_format::Parser::ws' usando 'next_if'
- Omitir lint 'if-let-rescope' excepto en migración
- Omitir sugerencias en código derivado
- Soporte para ensamblaje en línea wasm en 'naked_asm!'
- Mejorar coordenadas en Python
- Elevar lint 'clippy::double_neg' como 'double_negations'
- Usar 'structurally_normalize' en errores de alias
- Usar identificadores en código de diagnóstico
- Usar tipo corto en etiqueta de tramo E0308
- Miri: many-seeds: usar 8 hilos
- Miri: Nombrar pre-pase al buscar hijos de módulo
- Implementar tipos 'ByteStr' y 'ByteString'
- Implementar 'VecDeque::pop_front_if' y 'VecDeque::pop_back_if'
- Implementar marcadores de varianza fantasma
- Windows x86: Cambiar i128 para usar vector ABI
- Cargo: Reemplazar claves específicas al fusionar configs
- Cargo: Deprecar token CLI en 'login'
- Cargo: Corregir 'shared_std_dependency_rebuild' en Windows
- Cargo: Corregir enlaces rotos en libro de Cargo
- Cargo: Hacer '--allow-dirty' implícito con '--allow-staged'
- Cargo: Mostrar globs cuando no se encuentran miembros del workspace
- Cargo: Eliminar enlace '-C link-arg=-fuse-ld=lld'
- Rustdoc: Corregir sangría en elementos de traits móviles
- Rustfmt: Corregir 'wrap_comments' creando bloques inválidos
- Clippy: 'arithmetic_side_effects': verificar tipos de expresión
- Clippy: 'match_bool': sugerir corrección con guardias
- Clippy: 'short_circuit_statement': manejar macros y paréntesis
- Clippy: 'unnecessary_semicolon': omitir si causa errores de préstamo
- Clippy: Añadir ajustes para '.into_iter()' redundante
- Clippy: Nueva lint 'doc_overindented_list_items'
- Clippy: Nueva lint 'non_std_lazy_statics'
- Clippy: Sugerencias correctas en 'no_std'
- Clippy: Desactivar 'needless_late_init' con macros
- Clippy: Mejorar 'unnecessary_map_or' con referencias
- Clippy: Nueva lint 'sliced_string_as_bytes'
- Clippy: Aplicabilidad correcta para 'obfuscated_if_else'
- Clippy: Sugerir 'Vec::extend()' en 'same_item_push'
- Clippy: Detectar '.then(..).unwrap_or(..)' en 'obfuscated_if_else'
- rust-analyzer: Verificar CFG al recopilar macro refs
- rust-analyzer: Añadir archivos de compilación a ProjectFolders
- rust-analyzer: Implementar 'autotipos arbitrarios'
- rust-analyzer: Implementar 'default-field-values'
- rust-analyzer: Configurar inserción automática de 'await' e 'iter()'
- rust-analyzer: Soporte para '#[target_feature]' en funciones seguras
- rust-analyzer: Completar variantes ocultas en enums
- rust-analyzer: No sugerir 'into_iter().method()' en iteradores
- rust-analyzer: Corregir 'ItemScope' con imports glob
- rust-analyzer: Corregir token faltante en resaltado semántico
- rust-analyzer: Corregir pánico en flycheck con estrategia "una vez"
- rust-analyzer: Corregir filtrado en Flyimport
- rust-analyzer: Corregir resaltado sintáctico para renombres
- rust-analyzer: Mejorar expansión de finalización considerando recursividad
- rust-analyzer: Evitar recursión infinita en formato de límites
- rust-analyzer: Marcar punteros FN inseguros como unsafe
- rust-analyzer: Ordenar finalizaciones con 'await'/'iter()'
- rust-analyzer: Ir a 'Display::fmt' desde 'to_string'
- rust-analyzer: Aumentar límite de recursión de autoderef a 20
- rust-analyzer: Mantener propiedades de sugerencias calculadas
- rust-analyzer: Mejorar presentación de dichos
- rust-analyzer: Recopilar símbolos implícitos solo con renombres
- rust-analyzer: Priorizar tareas de formateo
- rust-analyzer: Separar 'ExpressionStore' de 'Body'
- rust-analyzer: Usar 'strict_provenance'
Clasificación del rendimiento de compilador de Rust
Semana relativamente tranquila, con una gran regresión que se revertirá. #132666 produjo un buen rendimiento. ganar, saltando trabajo nnecesario. Esta PR en realidad revirtió una regresión causada por una PR anterior.
Triaje realizado por @kobzol.
Rango de revisión: 9a1d156f.. F7538506
Resumen:
| (instrucciones:u) | media | Gama | Recuento |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regresiones ❌
(primario) | 0.5% | [0.2%, 2.2%] | 42 |
| Regresiones ❌
(secundaria) | 2.1% | [0.1%, 11.6%] | 56 |
| Mejoras ✅
(primario) | -0.8% | [-4.2%, -0.1%] | 107 |
| Mejoras ✅
(secundaria) | -1,2% | [-4.0%, -0.1%] | 77 |
| Todos ❌✅ (primarios) | -0,5% | [-4,2%, 2,2%] | 149 |
2 regresiones, 3 mejoras, 2 mixtas; 4 de ellos en rollups 45 comparaciones artefactos realizadas en total
RFC aprobados
Los cambios en Rust siguen el proceso de Rust RFC (solicitu omentarios). Estos son las RFC que se probaron para la implementación esta semana:
- No se probaron RFC 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
- std: imprimir un backtrace en stackoverflow
- Estabilizar const_slice_flatten
- derivar 'copy' y 'hash' para 'IntErrorKind'
- Problema de seguimiento para 'map_many_mut'
- Problema de seguimiento para 'const_vec_string_slice'
- Problema de seguimiento para 'const_mut_cursor'
- Estabilizar 'const_is_char_boundary' y 'const_str_split_at'.
- Problema de seguimiento para 'NonZero*::count_ones'
- Estabilizar 'const_black_box'
- Hacer de cenum_impl_drop_cast un error grave
- Problem de seguimiento para 'once_wait'
- [rustdoc] Añadir configuración de fuente sans-serif
Cargo
- No hay problema de seguimiento cargo o PRS ingresaro al período final de comentarios esta semana.
Equipo de idioma
- Ninguna propuesta de equipo lingüístico entró en el Período Fina de Comentarios esta semana.
Referencia de idioma
- No hay RFC de referencia de idioma ingresó al Período Final de Comentarios esta semana.
Directrice de código inseguros
- No hubo problema de seguimiento e pauta código inseguros o PRS ingresó el período final de comentarios esta semana.
RFC nuevas y actualizadas
- No se crearon RFC nuevas o actualizadas esta semana.
Próximos eventos
Evento Rust entre 2025-01-29 - 2025-02-26 🦀
Virtual
- 30/01/2025 | Virtual (Berlín, DE) | OpenTechSchool Berlín + Rust Berlin
- 30/01/2025 | Virtual (Charlottesville, VA, EE. UU.) | Reunión de Rust en Charlottesville
- 30/01/2025 | Virtual (Tel Aviv-Yafo, IL) | Expertos de código 🦀 - 🐍 - 🐪
- 31/01/2025 | Virtual (Delhi, IN) | Asociación de Hackathon Raptors
- 31/01/2025 | Virtual (Jersey City, Nueva Jersey, EE. UU.) | Jersey City Classy and Curious Coders Club Cooperative
- 01/02/2025 | Virtual (Kampala, UG) | Círculo de Rust Kampala
- 04/02/2025 | Virtual (Buffalo, NY, EE. UU.) | Encuentro de Buffalo Rust
- 04/02/2025 | Virtual (Londres, GB) | Mujeres en Rust
- 05/02/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 06/02/2025 | Virtual (Nürnberg, DE) | Rust en Núremberg
- 07/02/2025 | Virtual (Jersey City, Nueva Jersey, EE. UU.) | Jersey City Classy and Curious Coders Club Cooperative
- 11/02/2025 | Virtual (Tel Aviv-Yafo, IL) | Expertos de código 🦀 - 🐍 - 🐪
- 13/02/2025 | Virtual (Berlín, DE) | Rust Berlin
- 14/02/2025 | Virtual (Jersey City, Nueva Jersey, EE. UU.) | Jersey City Classy and Curious Coders Club Cooperative
- 19/02/2025 | Virtual (Vancouver, BC, CA) | Rust en Vancouver
- 20/02/2025 | Híbrido (Redmond, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 21/02/2025 | Virtual (Jersey City, Nueva Jersey, EE. UU.) | Jersey City Classy and Curious Coders Club Cooperative
- 25/02/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 25/02/2025 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 25/02/2025 | Virtual (Washington, DC, EE. UU.) | Rust DC
Asia
- 24/02/2025 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
Europa
- 30/01/2025 | Augsburgo, DE | Encuentro de Rust Augsburgo
- 30/01/2025 | Berlín, DE | Rust Berlin
- 30/01/2025 | Copenhague, Dinamarca | Comunidad de Rust en Copenhague
- 01/02/2025 | Bruselas, BE | FOSDEM 2025
- 01/02/2025 | Helsinki, FI | Grupo Rust-lang de Finlandia
- 01/02/2025 | Nürnberg, DE | Rust en Núremberg
- 05/02/2025 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
- 06/02/2025 | Gdansk, PL | Rust Gdansk
- 12/02/2025 | Reading, Reino Unido | Taller de lectura de Rust
- 14/02/2025 | Edimburgo, Reino Unido | Rust y amigos
- 18/02/2025 | Leipzig, SN, DE | Rust - Programación de sistemas modernos en Leipzig
- 19-20/02/2025 | Londres, Reino Unido | Rust Nation Reino Unido
- 20/02/2025 | Berna, CH | Rust Bern
- 21/02/2025 | Londres, Reino Unido | Rust Global: Londres 2025
- 22/02/2025 | Estocolmo, SE | Estocolmo Rust
América del Norte
- 31/01/2025 | Detroit, MI, EE. UU. | Rust Detroit
- 03/02/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 06/02/2025 | Mountain View, CA, EE. UU. | Hacker Dojo
- 06/02/2025 | Saint Louis, MO, EE. UU. | STL Rust
- 11/02/2025 | Minneapolis, MN, EE. UU. | Reunión de Rust en Minneapolis
- 14/02/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 18/02/2025 | San Francisco, CA, EE. UU. | Grupo de estudio de San Francisco
- 20/02/2025 | Nashville, TN, EE. UU. | Desarrolladores de Music City Rust
- 20/02/2025 | Redmond, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 21/02/2025 | Ciudad de México, MX | Rust MX
- 22/02/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 26/02/2025 | Austin, TX, EE. UU. | Rust ATX
Oceanía
- 04/02/2025 | Auckland, NZ | Rust AKL
- 04/02/2025 | Sídney, AU | Rust Sídney
Si estás organizando un evento de Rust, agrégalo al calendario para que se mencione aquí. Por favor, recuerda agregar un enlace al evento también. Envía un correo electrónico para solicitar acceso.
Empleos
Por favor, consulte el último hilo en Quién está contratando en r/rust
Frase de la semana
Tengo experiencia en múltiples estilo de MMA obtenida de la lucha contra el verificador de préstamos, si es que uenta.
– Richard Neumann sobre un usuario de Rust
¡Gracias a Jonas Fassbender por la sugerencia!
¡Por favor, envía tus citas y vote para la próxima semana!
This Week in Rust es editado por: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
El alojamiento de la lista correo electrónico está patrocinado por The Rust Foundation