Esta semana en Rust #1
Hola y bienvenidos al primer post de Esta semana en Rust.
Rust es un lenguaje de programación que empodera a todos para construir software fiable y eficiente.
Esta semana en Rust es un blog semanal basado en la idea de This week in Rust
Discord
Amamos las contribuciones.
Esta semana en Rust es desarrolla abiertamente en GitHub
envía un PR.
- Cambios de rust-analyzer #202
- Anunciando: pid1 Crate para imágenes de Docker Rust más fáciles - FP Complete
- bit_seq en Rust: Una Macro Procedural para la Generación de Secuencias de Bits
- tcpproxy 0.4 lanzado
- Rune 0.13
- Rust en chips Espressif - 29 de septiembre de 2023
- esp-rs planificación trimestral: Q4 2023
- Implementando el namespace
#[diagnostic]
para mejorar los mensajes de error de rustc en las cajas complejas
- Seguridad vs Rendimiento. Un estudio de caso de las implementaciones de ordenación en C, C++ y Rust
- SQL en bruto en Rust con SQLx
- Hilo por núcleo
- Edge IoT con Rust en ESP: Cliente HTTP
- El Chadstack de Ingeniería de Datos Definitivo. Ejecutando Rust dentro de Apache Airflow
- Por qué Rust no necesita un div_rem estándar: Un cuento de LLVM - CodSpeed
- Haciendo que los ataques de la cadena de suministro de Rust sean más difíciles con Cackle
- [video] Rust 1.73.0: Todo Revelado en 16 Minutos
- Construyamos una herramienta de compilación compatible con Cargo - Parte 5
- Cómo redujimos el uso de memoria de nuestra extensión Rust en 4x
- Llamando a Rust desde Python
- Aceptación de pruebas de controladores incrustados
- 5 formas de instanciar estructuras Rust en las pruebas
- Rust, Open Source, Consulting - Entrevista con Matthias Endler
- Edge IoT con Rust en ESP: Conectando WiFi
- Cerca de metal Rust en Android
- [audio] Aprende Rust en un mes de almuerzos con Dave MacLeod
- [video] Rust 1.73.0: Todo Revelado en 16 Minutos
- [video] Rust 1.73 Release Train
- [video] ¿Por qué el ecosistema de JavaScript está cambiando a Rust?
El crate de esta semana es yarer, una biblioteca y herramienta de línea de comandos para evaluar expresiones matemáticas.
¡Gracias a Gianluigi Davassi por la auto-sugerencia!
¡Por favor envía tus sugerencias y votos para la próxima semana!
Algunas de estas tareas también pueden tener mentores disponibles, visita la página de la tarea para más información.
- Ockam - Hacer
ockam node delete
(sin argumentos) interactivo preguntando al usuario que elija de una lista de nodos para borrar (tuify) - Ockam - Mejorar el texto de ayuda de
ockam enroll ----help
añadiendo un comentario de documentación para la banderaidentity
(comandoclap
) - Ockam - Inscribir "email: el carácter '+' no está permitido"
Si eres propietario de un proyecto Rust y estás buscando contribuyentes, por favor envía tareas aquí.
384 pull request fueron fusionados en la última semana
- formally demote tier 2 MIPS targets to tier 3
- add tvOS to
target_os
forregister_dtor
- linker: remove
-Zgcc-ld
option - linker: remove unstable legacy CLI linker flavors
non_lifetime_binders
: fix ICE in lint opaque-hidden-inferred-bound- add
async_fn_in_trait
lint - add a note to duplicate diagnostics
- always preserve DebugInfo in DeadStoreElimination
- bring back generic parameters for indices in
rustc_abi
and make it compile on stable - coverage: allow each coverage statement to have multiple code regions
- detect missing
=>
after match guard during parsing - diagnostics: be more careful when suggesting
struct
fields - don't suggest nonsense suggestions for unconstrained type vars in
note_source_of_type_mismatch_constraint
- dont call
mir.post_mono_checks
in codegen - emit feature gate warning for
auto
traits pre-expansion - ensure that
~const
trait bounds on associated functions are in const traits or impls - extend
impl
'sdef_span
to include its where clauses - fix detecting references to packed unsized fields
- fix fast-path for
try_eval_scalar_int
- fix to register analysis passes with -Zllvm-plugins at link-time
- for a single impl candidate, try to unify it with error trait ref
- generalize small dominators optimization
- improve the suggestion of
generic_bound_failure
- make FnDef 1-ZST in LLVM debuginfo
- more accurately point to where default return type should go
- move subtyper below
reveal_all
and changereveal_all
- only trigger
refining_impl_trait
lint on reachable traits - point to full
async fn
for future - print normalized ty
- properly export function defined in test which uses
global_asm!()
- remove Key impls for types that involve an AllocId
- remove is global hack
- remove the
TypedArena::alloc_from_iter
specialization - show more information when multiple
impl
s apply - suggest
pin!()
instead ofPin::new()
when appropriate - make subtyping explicit in MIR
- do not run optimizations on trivial MIR
- in smir
find_crates
returnsVec<Crate>
instead ofOption<Crate>
- add Span to various smir types
- miri-script: print which sysroot target we are building
- miri: auto-detect
no_std
where possible - miri: continuation of #3054: enable spurious reads in TB
- miri: do not use host floats in
simd_{ceil,floor,round,trunc}
- miri: ensure RET assignments do not get propagated on unwinding
- miri: implement
llvm.x86.aesni.*
intrinsics - miri: refactor dlsym: dispatch symbols via the normal shim mechanism
- miri: support getentropy on macOS as a foreign item
- miri: tree Borrows: do not create new tags as 'Active'
- add missing inline attributes to Duration trait impls
- stabilize
Option::as_
(mut_
)slice
- reuse existing
Some
s inOption::(x)or
- fix generic bound of
str::SplitInclusive
'sDoubleEndedIterator
impl - cargo:
refactor(toml)
: Make manifest file layout more consitent - cargo: add new package cache lock modes
- cargo: add unsupported short suggestion for --out-dir flag
- cargo: crates-io: add doc comment for
NewCrate struct
- cargo: feat: add
Edition2024
- cargo: prep for automating MSRV management
- cargo: set and verify all MSRVs in CI
- rustdoc-search: fix bug with multi-item impl trait
- rustdoc: rename
issue-\d+.rs
tests to have meaningful names (part 2) - rustdoc: Show
enum
discrimant if it is a C-like variant - rustfmt: adjust span derivation for const generics
- clippy:
impl_trait_in_params
now supports impls and traits - clippy:
into_iter_without_iter
: walk up deref impl chain to finditer
methods - clippy:
std_instead_of_core
: avoid lint inside of proc-macro - clippy: avoid invoking
ignored_unit_patterns
in macro definition - clippy: fix
items_after_test_module
for non root modules, add applicable suggestion - clippy: fix ICE in
redundant_locals
- clippy: fix: avoid changing drop order
- clippy: improve
redundant_locals
help message - rust-analyzer: add config option to use
rust-analyzer
specific target dir - rust-analyzer: add configuration for the default action of the status bar click action in VSCode
- rust-analyzer: do flyimport completions by prefix search for short paths
- rust-analyzer: add assist for applying De Morgan's law to
Iterator::all
andIterator::any
- rust-analyzer: add backtick to surrounding and auto-closing pairs
- rust-analyzer: implement tuple return type to tuple
struct
assist - rust-analyzer: ensure
rustfmt
runs when configured with./
- rust-analyzer: fix path syntax produced by the
into_to_qualified_from
assist - rust-analyzer: recognize custom main function as binary entrypoint for runnables
Una semana tranquila, con pocas regresiones y mejoras.
Triage realizado por @simulacrum
9998f4add..84d44dd
1 Regresiones, 2 Mejoras, 4 Mixtas; 1 de ellas en rollups
68 comparaciones de artefactos realizadas en total
Los cambios a Rust siguen el proceso RFC (solicitud de comentarios) de Rust
- No se aprobaron RFCs esta semana.
Cada semana, el equipo
- [disposition: merge] RFC: Eliminar características implícitas en una nueva edición
- [disposition: merge] Aumentar
COINDUCTIVE_OVERLAP_IN_COHERENCE
para negar + advertir en las dependencias - [disposition: merge] documentar la compatibilidad ABI
- [disposition: merge] Ampliar las consecuencias de la inicialización recursiva de TLS
- [disposition: merge] Implementar
BufRead
paraVecDeque<u8>
- [disposition: merge] Seguimiento de la característica
feature(file_set_times)
:FileTimes
yFile::set_times
- [disposition: merge] impl Not, Bit{And,Or}{,Assign} para direcciones IP
- [disposition: close] Hacer que
RefMut
seaSync
- [disposition: merge] Implementar FusedIterator para DecodeUtf16 cuando el iterador interno lo hace
- [disposition: merge] Estabilizar
{IpAddr, Ipv6Addr}::to_canonical
- [disposition: merge] rustdoc: ocultar
#[repr(transparent)]
si no forma parte de la ABI pública
- [nuevo] Añadir cierre-mover-vinculaciones RFC
- [nuevo] RFC: Incluir Future e IntoFuture en el preludio de 2024
RFC se beneficiarían de las pruebas de los usuarios antes de avanzar:
- Ningún RFC emitió un llamado a pruebas esta semana.
Si eres un implementador de características y quieres que tu RFC aparezca en la lista anterior, añade la nueva etiqueta call-for-testing
Eventos Rusticos entre 2023-10-11 - 2023-11-09 🦀
- 2023-10-12 - 2023-10-13 | Virtual (Brussels, BE) | EuroRust
- 2023-11-09 | Barcelona, ES | BcnRust
- BcnRust - Noviembre 2023
Van a haber dos charlas:
- Conflict-Free Replicated Data Types (CRDTs) in Rust
Adevinta
- BcnRust - Noviembre 2023
Van a haber dos charlas:
La misión de Rust -- de permitirte escribir software que sea rápido y correcto, productivamente -- nunca ha estado más viva. Así que la próxima Rustconf, planeo celebrar:
- Todos los desbordamientos de búfer que no creé, gracias a Rust
- Todas las pruebas unitarias que no tuve que escribir, gracias a su sistema de tipos
- Todas las comprobaciones nulas que no tuve que escribir gracias a Option y Result
- Todo el JS que no tuve que escribir gracias a WebAssembly
- Todos los estados imposibles que no tuve que afirmar "Esto nunca puede suceder realmente"
- Todas las claves de campo JSON que no tuve que escribir manualmente gracias a Serde
- Todos los errores de columna SQL que capturé en tiempo de compilación gracias a Diesel
- Todas las condiciones de carrera de las que nunca tuve que preocuparme gracias al verificador de préstamos
- Todas las conexiones que puedo aceptar concurrentemente gracias a Tokio
- Todos los comentarios de formato que no tuve que dejar en PRs gracias a Rustfmt
- Todos los problemas de rendimiento que no creé gracias a Clippy.
– Adam Chalmers en su resumen de RustConf 2023
¡Gracias a robin por la sugerencia!