rust-dev-tools / dev-tools-team

resources for the Rust dev-tools team
42 stars 9 forks source link

Tools wishlist #24

Open nrc opened 7 years ago

nrc commented 7 years ago

Tools we wish we had, but don't have time to work on right now. Please indicate the magnitude of the task.

I'm primarily looking for ideas which are not in progress or even on our radar for starting.

nrc commented 7 years ago

An unsafe audit tool.

A cargo plugin, which covers deps and the current crate and lists all unsafe blocks, functions, impls. Has JSON and human-readable output. Should use the AST, rather than greping for "unsafe".

Fairly easy (but non-trivial), quite small. https://github.com/avadacatavra/cloc-rust Is a step towards this.

Manishearth commented 7 years ago

rustfix? @killercup

(I mean, killercup is working on it, but it's not an official devtools tool and others aren't)

nrc commented 7 years ago

Unsafety checking

I.e., looks at your unsafe code and tells you whether it is really unsafe.

Very difficult, possibly impossible. Depends on the unsafe guidelines work that is ongoing. Probably huge.

nrc commented 7 years ago

Macro debugging tools

At least show expansion of macros in source code. Better if we can show every step of expansion. Better still if we can integrate with rustw and every step of expansion has all defs/refs properly linked.

See Dr Racket.

Pretty open-ended. Medium difficultly.

Manishearth commented 7 years ago

That tool will probably arise as dynamic analysis out of the unsafe guidelines work.

Manishearth commented 7 years ago

Trust checking

The ability to manage trust in a large dependency chain. We need this for firefox and will make something ad-hoc for it but it would be great to make it into a proper tool at some point.

(Ideally this would integrate with the unsafety stuff too)

nrc commented 7 years ago

Borrowing explorer

There has been some work towards borrow visualisation. I'd like to go further and have an interactive tool for exploring how borrowing/lifetimes/etc. affects the code.

nrc commented 7 years ago

Migration tooling

Migrate Rust code across epochs