nushell/crates
Devyn Cairns a2758e6c40
Add IR support to the debugger (#13345)
# Description

This adds tracing for each individual instruction to the `Debugger`
trait. Register contents can be inspected both when entering and leaving
an instruction, and if an instruction produced an error, a reference to
the error is also available. It's not the full `EvalContext` but it's
most of the important parts for getting an idea of what's going on.

Added support for all of this to the `Profiler` / `debug profile` as
well, and the output is quite incredible - super verbose, but you can
see every instruction that's executed and also what the result was if
it's an instruction that has a clearly defined output (many do).

# User-Facing Changes

- Added `--instructions` to `debug profile`, which adds the `pc` and
`instruction` columns to the output.
- `--expr` only works in AST mode, and `--instructions` only works in IR
mode. In the wrong mode, the output for those columns is just blank.

# Tests + Formatting

All passing.

# After Submitting

- [ ] release notes
2024-07-13 01:58:21 -07:00
..
nu_plugin_custom_values Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_example Add and use new Signals struct (#13314) 2024-07-07 22:29:01 +00:00
nu_plugin_formats remove the deprecated register command (#13297) 2024-07-05 07:16:50 -05:00
nu_plugin_gstat remove the deprecated register command (#13297) 2024-07-05 07:16:50 -05:00
nu_plugin_inc remove the deprecated register command (#13297) 2024-07-05 07:16:50 -05:00
nu_plugin_nu_example Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_polars Make polars unpivot consistent with polars pivot (#13335) 2024-07-10 16:36:38 -05:00
nu_plugin_python remove the deprecated register command (#13297) 2024-07-05 07:16:50 -05:00
nu_plugin_query Use conventional generic bounds (#13360) 2024-07-12 17:13:07 +08:00
nu_plugin_stress_internals Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-cli Path migration part 2: nu-test-support (#13329) 2024-07-12 02:43:10 +00:00
nu-cmd-base Path migration 1 (#13309) 2024-07-09 17:25:23 +08:00
nu-cmd-extra Update config directly at assignment (#13332) 2024-07-11 06:09:33 -07:00
nu-cmd-lang Internal representation (IR) compiler and evaluator (#13330) 2024-07-10 17:33:59 -07:00
nu-cmd-plugin remove the deprecated register command (#13297) 2024-07-05 07:16:50 -05:00
nu-color-config Update config directly at assignment (#13332) 2024-07-11 06:09:33 -07:00
nu-command Add IR support to the debugger (#13345) 2024-07-13 01:58:21 -07:00
nu-derive-value Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-engine Add IR support to the debugger (#13345) 2024-07-13 01:58:21 -07:00
nu-explore Update config directly at assignment (#13332) 2024-07-11 06:09:33 -07:00
nu-glob Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-json Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-lsp Add and use new Signals struct (#13314) 2024-07-07 22:29:01 +00:00
nu-parser Mention the actual output type on an OutputMismatch error (#13355) 2024-07-12 11:45:53 +02:00
nu-path Edit path form doc comments (#13358) 2024-07-12 10:23:51 +02:00
nu-plugin Update config directly at assignment (#13332) 2024-07-11 06:09:33 -07:00
nu-plugin-core Add and use new Signals struct (#13314) 2024-07-07 22:29:01 +00:00
nu-plugin-engine Update config directly at assignment (#13332) 2024-07-11 06:09:33 -07:00
nu-plugin-protocol Update config directly at assignment (#13332) 2024-07-11 06:09:33 -07:00
nu-plugin-test-support Add and use new Signals struct (#13314) 2024-07-07 22:29:01 +00:00
nu-pretty-hex Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-protocol Add IR support to the debugger (#13345) 2024-07-13 01:58:21 -07:00
nu-std don't show result in error make examples (#13296) 2024-07-05 07:17:07 -05:00
nu-system Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-table Fix unused space when truncation is used and header on border is configured (#13353) 2024-07-11 15:13:16 -05:00
nu-term-grid Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-test-support Path migration part 2: nu-test-support (#13329) 2024-07-12 02:43:10 +00:00
nu-utils Add and use new Signals struct (#13314) 2024-07-07 22:29:01 +00:00
nuon Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.