Demystifying FRAME Macro Magic | Substrate Seminar (full livestream)

2 years ago
28

In this seminar, we are joined by Parity core FRAME developer, Sam who steps us through how the FRAME pallet Rust macro parsing and expansion works through the lens of implementing a simple pallet macro. See the seminar lesson plan for more details and links to learning resources:
https://github.com/substrate-develope...

👉 Have a topic you’d like to propose for the next seminar? Submit a Github issue here: https://github.com/substrate-develope...

📺 Subscribe to this channel on Twitch: https://dashboard.twitch.tv/polkadotdev/

🗞 Sign up to the Substrate Developer newsletter for updates on all things Substrate: https://substrate.io/ecosystem/connec...

0:00 Intro
3:10 Sam’s background and current work
8:48 Why are macros so important for FRAME developers?
10:31 What are macros?
16:42 What are tokens?
19:00 Declarative macros in Rust
23:24 Procedural macros in Rust
29:31 Attribute proc macro example
33:09 Macro state tracking
38:01 The outer macro pattern
39:59 FRAME pallet outer macro pattern
46:14 Q: Does FRAME make it easier or harder for experienced Rust developers?
54:38: Q: Will it be possible to use an inner call in another file?
59:50 Q: When will Substrate move away from GitHub dependencies to crate dependencies?
1:01:35 Q: What are some of your favourite macros to use during runtime development?
1:04:00 FRAME pallet attribute macro stubs
1:09:46 Q: What’s an example of unhygienic macro code?
1:11:35 Demo: stepping through cargo expansion and adding the whitelist storage attribute
1:28:24 Recap
1:31:44 Q: What improvements would you like to see in FRAME?
1:33:50 Q: How does this fit into construct_runtime?
1:36:00 Q: What dev setup tips do you have for developers?
1:45:24 Q: Where can I learn more about the different FRAME macros?
1:48:07 Outro
1:51:50 Q: What do you advise for developers transitioning into Rust/Substrate?

#polkadot #substrate #rustlang #macros
---------------------------------------------------------------------------------------------------------------------------------------------
If you have any questions, reach out to the community on our social channels 👇

Discord: https://dot.li/discord
Element: https://matrix.to/#/#polkadot:web3.foundation
Twitter: https://twitter.com/Polkadot
Reddit: https://www.reddit.com/r/polkadot/

Subscribe to the newsletter: https://bit.ly/Polkadot_Newsletter
Polkadot Lightpaper: https://polkadot.network/Polkadot-lig...
Polkadot Wiki: https://wiki.polkadot.network/docs/en...
Polkadot Ambassador Program: https://polkadot.network/polkadot-amb...

Loading comments...