nushell/crates
Stefan Holderbach 55c7246830
Fuzz more realistically with keyword const eval (#15036)
# Description
The parsing logic for several of our keywords is conditional on the
particular commands for those keywords being in scope:


942030199d/crates/nu-parser/src/parse_keywords.rs (L272-L279)

Thus the following involved parsing logic was not fuzzed by the existing
`parse` fuzz target so far.

This adds an additional fuzz target `parse_with_keywords` that loads the
commands from `nu-cmd-lang`. Those are primarily the keyword
implementations, thus the relevant code paths in the parser that depend
on those `DeclId`s and the potential const eval of `if` etc. get
unlocked.

The existing `parse` target is preserved if you have concerns about the
fuzzing breaking containment in some form due to those commands.

# Tests + Formatting
Found https://github.com/nushell/nushell/issues/14972 with this target
2025-02-07 23:50:47 +01:00
..
nu_plugin_custom_values Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_example Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_formats Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_gstat Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_inc Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_nu_example Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_polars fix polars save example typo (#15008) 2025-02-06 07:01:09 -06:00
nu_plugin_python Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_query Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu_plugin_stress_internals Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-cli feat(cli): add vi solidus / keybinding (#14908) 2025-02-06 06:53:32 -06:00
nu-cmd-base Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-cmd-extra Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-cmd-lang fix: clippy warnings with --all-features (#15035) 2025-02-07 12:30:25 +01:00
nu-cmd-plugin Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-color-config Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-command remove nu-check examples with the --all flag (#15047) 2025-02-07 14:31:59 -06:00
nu-derive-value Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-engine Enable nushell error with backtrace (#14945) 2025-02-06 22:05:58 +08:00
nu-explore feat(explore): Allow expanding selected cell with 'e' (#15000) 2025-02-06 06:56:53 -06:00
nu-glob Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-json Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-lsp refactor(completion): AST traverse to find the inner-most expression to complete (#14973) 2025-02-06 06:49:13 -06:00
nu-parser Fuzz more realistically with keyword const eval (#15036) 2025-02-07 23:50:47 +01:00
nu-path Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-plugin Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-plugin-core Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-plugin-engine fix: clippy warnings with --all-features (#15035) 2025-02-07 12:30:25 +01:00
nu-plugin-protocol Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-plugin-test-support Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-pretty-hex Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-protocol check signals while printing values (#14980) 2025-02-07 06:56:07 -05:00
nu-std Fix usages of fmt to format number (#15041) 2025-02-07 23:50:33 +01:00
nu-system Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-table Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-term-grid Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nu-test-support fix: clippy warnings with --all-features (#15035) 2025-02-07 12:30:25 +01:00
nu-utils Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05:00
nuon Bump to 0.102.1 dev version (#15012) 2025-02-05 00:19:48 -05: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.