# Nushell core team meeting 2024-09-04 ## Attendees - Stefan - Michael - Jack - Antoine - Devyn - Andy - Nothedroids - Piepmatz - Yash - Ian ## Agenda - [ ] [#13750](https://github.com/nushell/nushell/pull/13750) - [ ] [#13515](https://github.com/nushell/nushell/pull/13515) ## Discussed Topics ### closure syntax - proposal: https://github.com/nushell/nushell/issues/13750 ``` # closure now { cmd } { || cmd} { |args| cmd } # Ian's proposal for disambiguation @{} @{ cmd } @[arg]{ cmd} ``` - Similarity to def syntax would be a plus - extensibility if the syntax would be flexible to add additional type info - confusability with record - `:` as a strong indicator for record - some syntaxshape based BS we can probably fix on our side (`{}` being record except if you ask for closure, we can restrict that.) - (mostly a parser impl detail) - visual effect of `|arg| first| second`? - block and closure disambiguation - (non-issue with the current Nushell boxing in the block to be tightly linked to keywords (and `timeit`)) - before-times had more troubling semantics and syntaxshape wildwest - horrible ripple effect if we roll back the change general inertia says no change -> let's not close the issue but drive it by additional demand if we have additional syntax wishes on our list, should postpone after new-nu-parser merge ### exit code -> error https://github.com/nushell/nushell/pull/13515 - closer to `set -e` behavior of bash - with the option interactively hiding the full error message (e.g. running `diff`) - with the current setup not possible to implement `set -o pipefail` - different internals necessary to implement - semantic questions open - (Stefan) in our general philosophy: trying to be helpful with errors, when in doubt favor explicitness - (Jack): example long running script you might forget to check exit codes (e.g. hitting the network) - Some cases you may want to be pushed towards error handling - con: some overloading of exit code where `try`/`catch` - Also implementation of signal reporting - Two new `ShellError` variants - Jack: makes error handling more consistent internal/external ! - Q: complete command - `^zsh -e "exit 1" | complete` - Ian investigates: should behave the same as before - Antoine: current state of having to remember `complete` or possible `do` options is not great anyways - Andy: no concerns