T-Lang Meeting: Current meeting

Action items

  • niko to make a list of “things to go forward”
  • niko to write comment on stabilizing attribute macros on online modules
  • organize a roadmap meeting
  • organize some procedural discussion meeting and/or forum
  • propose case-by-case uplift for clippy lints (scottmcm) & cancel FCP

Next meeting proposals

  • December 5th: Inline assembly working group (let’s delegate Amanieu as shepherd)
  • also: organization proposals
  • RFC: Pointer metadata & VTable #2580
  • Schedule a meeting

Shepherded items

  • const evaluation (ecstatic-morse)
  • no updates this week
  • RFC 2753 — unwind/ffi interaction — kyle/adam
  • current status: trying to get measurements of the impact of the FFI
  • did a crater run but have only partially analyzed the impact
  • grammar working group — qmx
  • no updates this week
  • ! type and fallback — centril

Triage

  • Review last week’s action items

  • background:
  • changed improper ctypes lint so that it would fire more frequently
  • so that functions with extern "C" type (defined in Rust) would be checked too
  • in addition to imported foreign items (extern "C" { fn foo(); })
  • this uncovered a lot of false positives (unnecessary warnings)
  • specifically: if you have &Foo where Foo: Sized, that is well-defined (i.e., it will be a C pointer) but the lint complains about it
  • this was always the case but we are now analyzing more sources
  • so how should we proceed?
  • current status: PR reverted temporarily
  • some cases are “out and out UB”
  • other cases are more “avoiding footguns” — you can do this, but caution is required
  • e.g., passing a &Foo to a non-C struct Foo is ok, as long as you are careful not to deref on the C side or rely on the layout of the struct