As part of the requirements for my Honour's degree, I've been working under Nick Cameron's supervision, extending save-analysis and the macro-expansion code to allow Rust to export information about the intermediary steps of macro-expansion. I also made the compiler a little more robust in the face of malformed macros.
I created a simple Java tool to showcase these changes, and now I'm looking for participants in a user study. All I'm looking for is people who have some familiarity with Rust's macros, to use my tool and then answer some quick questions. It shouldn't take longer than half an hour (unless you decide to install it yourself), and I'll be looking for participants probably until next Wednesday.
If this sounds like you'd be interested, specific details can be found here: Rust User Study Intro/Guide · GitHub
Thanks for reading!
1 Like
Just an addendum to say thanks to those who have participated, I just need a few more - I've extended the deadline until Friday.
One thing I thought of that I forgot to suggest: colour-coding identifiers based on syntax context. The problem with just expanding the macro in-place is that you can have code that compiles post-expansion, but which does not compile pre-expansion, due to hygiene. Having colour-coding for identifiers based on syntax context might help in cases where it's not otherwise visually obvious what's going on.
I use something similar in the practical introduction to macros chapter of TLBoRM (search for "Now, let's expand the invocation.").
Yes that's a desired feature, in fact it was planned, but didn't make it in in time - hence there being two questions containing scope bugs. More things had to be left out than kept in to get it ready on time. Hopefully if I land the Rust code the tool is using then it can start to get used in existing tools.