# Nushell core team meeting 2024-02-14 ## Attendees - Darren - Michael - Yash - Antoine - Ian - Kubouch - Stefan - Auca Coyan - Jack Wright (ayax79) ## Agenda - [x] If Stefan is on the call I wanted to briefly discuss not changing the way history ids get created in reedline in the file backed history [because this PR](https://github.com/nushell/reedline/pull/747) is considering proposing to do that. - [fn generate_id(&mut self) -> HistoryItemId { HistoryItemId(self.rng.gen()) }](https://github.com/ClementNerma/reedline/blob/main/src/history/file_backed.rs#L79C1-L82C6) - [x] [matklad comment](https://github.com/nushell/nushell/pull/11621#issuecomment-1937484322) about globs - [x] have an explicit `--glob` flag (but still expand globs for bare words)? - [x] ayax shares his take on the catch_unwind now that he's had a chance to look at it. - [x] make command signatures more convenient for spreading [11796](https://github.com/nushell/nushell/issues/11796) - [x] Debugger progress - Addressed all Sophia's comments - Slightly ugglier eval API (see below) - [ ] cassaundra's quake and custom syntax [Discord chat](https://discord.com/channels/601130461678272522/615962413203718156/1205393909447004200) ## Discussed Topics ### History ID PR Conclusion is we're not really ready yet and we're not convinced yet that it's necessary. We still need to understand the "whys". Darren also doesn't really see the point of a cryptographic id. ### Globbing Issues with globbing: 1. Let's not expand glob from variable: `let rm = $file` should not expand the glob. 2. syntax shape changes semantics (TODO investigate): `def f [file: glob] { ls $file }; f '*'` vs. `def f [file: glob] { ls $file }; f ('*')` 3. Do we glob external args? ### catch_unwind Related [parent Stack PR](https://github.com/nushell/nushell/pull/11654): use the parent stack on panic, ignore and don't merge stack changes. Similarly, we ignore the current working set and don't merge it into the engine state. ### Rest params on file commands Migrate commands that make sense to have only `...(rest)`: `touch`, `rm`. Rename rest args to be more clear (e.g.,`...(filenames)` and not just `...(rest)`). ### Debugger Before: ```rust // definition pub fn eval_block(...) ... // usage eval_block(...); ``` After: ```rust // definition pub fn eval_block<D: DebugContext>(...) ... // usage (requires turbofish) eval_block::<WithDebug>(...); eval_block::<WithoutDebug>(...); ``` ## Issues > :bulb: the issues which [needs-core-team-attention](https://github.com/nushell/nushell/labels/needs-core-team-attention) > :bulb: **Note** > to list all the PRs currently [opened in `nushell/nushell`](https://github.com/nushell/nushell/pulls): > ```nu > gh pr list --json url,number,author,title > | from json > | each {|i| > $"- [($i.number)]\(($i.url)\) ($i.title) \(@($i.author.login)\)" > } > | reverse > | to text > ```