owned this note changed 2 years ago
Published Linked with GitHub

Nushell core team meeting 2023-06-21

Attendees

  • Darren
  • Antoine
  • JT
  • Andres
  • Michael
  • Stefan
  • Jakub
  • AucaCoyan

Agenda

  • road to 1.0 - Blog post to announce direction and the change in release frequency: https://hackmd.io/@nucore/ByiV2Vl42
  • algorithmic speedup: stop accepting PRs with additional dependencies to nudge the focus of contributors towards the existing algorithms of Nushell
  • Reworking strings proposal (with breaking changes)
  • parse-time evaluation: the block problem
  • contributor suggests a nu-plugin refactor to better separate nu and plugin side responsibilities https://github.com/nushell/nushell/issues/9469
  • https://github.com/nushell/nushell/pull/9455 our python-virtualenv tests are failing. Can we ignore these failures and go ahead and land the PR anyway ?

Discussed Topics

String discussion

  • JT's proposal to kick off: single quote string would be unescaped and also allowed in the command position. remove the backticks
  • Darren: I still hate double quote escaping for Win
    • drag and drop paste is adding double quotes
  • Does nuon have to be a JSON superset?
  • Another argument for having escaping with double quotes: most programming languages do it (C, JS, Python etc)
  • Shell specific escapes \ are a different beast
  • Differentiating between those literals that expand expressions and those that keep them raw
  • Variable or expression expansion is a different complexity compared to path expansion (not just scope but also environment)
  • role of a quoted string in command position. is it a string or something to execute
  • Jakub: can we just stop having automatic execution of some string type without ^, only use the caret to execution of quoted strings. True bare word would still work

Parse-time evaluation: The block problem

During parse-time evaluation, only permanent state (result from the previous parse) is visible. The current parsing results are not visible to the evaled commands, see:

pub trait Command: Send + Sync + CommandClone {
    // What we have:
    fn run(
        &self,
        engine_state: &EngineState,
        stack: &mut Stack,
        call: &Call,
        input: PipelineData,
    ) -> Result<PipelineData, ShellError>;
    
    // What we need for a proper parse-time evaluation:
    fn run(
        &self,
        working_set: &StateWorkingSet, // <<<<<<
        stack: &mut Stack,
        call: &Call,
        input: PipelineData,
    ) -> Result<PipelineData, ShellError>;
}

Issues

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
the issues which needs-core-team-attention

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Note
to list all the PRs currently opened in nushell/nushell:

gh pr list --json url,number,author,title
| from json
| each {|i|
    $"- [($i.number)]\(($i.url)\) ($i.title) \(@($i.author.login)\)"
}
| reverse
| to text

old PRs

https://github.com/nushell/nushell/pull/9170
https://github.com/nushell/nushell/pull/9083
https://github.com/nushell/nushell/pull/9032
https://github.com/nushell/nushell/pull/8938

Select a repo