# Nushell core team meeting 2023-06-21
## Attendees
- Darren
- Antoine
- JT
- Andres
- Michael
- Stefan
- Jakub
- AucaCoyan
## Agenda
- [x] road to 1.0 - Blog post to announce direction and the change in release frequency: https://hackmd.io/@nucore/ByiV2Vl42
- [x] algorithmic speedup: stop accepting PRs with additional dependencies to nudge the focus of contributors towards the existing algorithms of Nushell
- [x] 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
- [x] 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:
```rust
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
> :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
> ```
### 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