Nushell core team meeting 2022-06-08

Attendees

  • Darren
  • Michael
  • Jakub
  • JT
  • Reilly
  • Stefan
  • Andrés

Open topics

Discussed topics

  • Compiler design lessons from jakt selfhost

    • Having a compiler stage struct that contains a list of errors to add.
  • Error convenience

    • Errors in a traceback
    • Experience currently depends heavily on the quality of the individual error emitting locations
  • Despanning

    • Lets try to move from value.span() to expr.span() instead of doing the hard refactor first
    • not carrying spans on Value should reduce the memory footprint and thus improve performance.
  • Flag passthrough

    • Should externs pass undocumented/able flags
    • Problem: positionals vs values for flags
    • Ordering has to be preserved! (Tools might only accept flags and positionals in a particular order)
    • ?: Workaround with annotations for the parameters or flags with ^
  • Optimization for REPL vs IDE

    • Nushell is very static + deltas as an optimization for the repl but this is hard if we want to do IDE support for larger scripts.
    • Maybe take inspiration from jakts IDE approach
    • Treesitterability of nushell
  • Performance monitoring

    • Jakub introduced $nu.scope.engine_state to get statistics about what the engine is holding
    • We probably need a GC sooner rather than later.
    • Can we serialize stuff as parquet to keep the hot memory smaller.
    • Great place for serialized data might be last_result
  • Data(frame) optimized engine tradeoffs

    • Datafusion style engine
    • Sequential optimized shell engine
    • Dataframe highly efficient on a special subset of problems
    • How can we get nushell commands to dispatch on all different data representations.
  • SQlite history part 2 (land it in nushoell)

    • landed in reedline, nushell not yet adapted to the new API (independent of whether a text file or sqlite is used)
    • Goal: have the option in the config to toggle on the new history to test it. (Currently no tangible benefit yet)
    • Some TODOs in phiresky's code, porting of the history command.
    • Benefit of making it a compiler flag instead of config flag is minimal as the API adaptations have to be done anyways
Select a repo