#nushell #nushell-plugin #representation #instructions #ir #debugging

app nu_plugin_explore_ir

a nushell plugin called explore_ir

3 releases (breaking)

0.3.0 Sep 24, 2024
0.2.0 Aug 28, 2024
0.1.0 Jul 24, 2024

#18 in #ir

Download history 122/week @ 2024-07-22 5/week @ 2024-07-29 154/week @ 2024-08-26 31/week @ 2024-09-16 181/week @ 2024-09-23

222 downloads per month

MIT and maybe CC-PDDC

190KB
645 lines

nu_plugin_explore_ir

cargo install nu_plugin_explore_ir
plugin add ~/.cargo/bin/nu_plugin_explore_ir

This is a fancy viewer for internal representation (IR) code in Nushell. Example:

explore ir {
  if ($env.HELLO | is-not-empty) {
    "Hello, " ++ $env.HELLO ++ "!"
  } else {
    "Goodbye, " ++ (random uuid) ++ "!"
  }
}

An example of what the UI looks like for the above code

Key bindings:

Key Effect
q Quit the application.
SPACE Open the inspector, which shows debug info for the instruction.
g Go to a specific instruction by index.
or k Go to the previous instruction.
or j Go to the next instruction.
[ Go back after jumping to an instruction's target.
] Jump into an instruction's target (branch or call decl / block)
ESC Close a dialog box or prompt.

With the [ and ] keys it is easy to navigate through IR code and jump into blocks referenced by literals, (custom) declarations in call instructions, or branch targets.

Dependencies

~27–57MB
~1M SLoC