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

app nu_plugin_explore_ir

a nushell plugin called explore_ir

6 releases (breaking)

new 0.6.0 Jan 8, 2025
0.5.0 Nov 15, 2024
0.4.0 Oct 16, 2024
0.3.0 Sep 24, 2024
0.1.0 Jul 24, 2024

#7 in #explore

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

~25–58MB
~1M SLoC