extern
not fully up to date (or capable to express the allowed grammar) nu rejects commands. (even though it only should be helping with completions/help notes)exec
out>
, err>
, out+err>
&&
vs ;
break
, continue
, and return
Don't (yet) have a tracking issue for all the problems in this area
JT+Stefan: we should make the command go through no matter what, maybe with warnings
Jakub: we might want this for custom commands too, for custom commands that are wrappers around externals. Otherwise you gotta use aliases (which are quite limited)
Stefan: need something like rest (…) for flags but with enforced order (including non flag parts) as that matters on externals.
More thought needed in this area
Fall-through signatures idea (structured approach) (Added by Jakub)
def foo [x, -y: int, --bar, ...rest, ..-flags] {
# $rest captures all unknown positionals
# $flags captures all unknown everything else (unlocks fall-through signature)
# $signature captures all signature as a structured data (preserves ordering)
$rest
$flags
$signature
}
# $rest is [ 20 ]
# $flags is [ --baz -z ]
> foo 10 20 -y 30 --baz -z
0 20
0 --baz
1 -z
# parameter name value known
────────────────────────────────────────
1 positional x 10 true
2 positional 20 false
3 option -y 30 true
4 flag --baz false
5 flag -z false
> foo 10 20 -y 30 --baz -z | into call
foo 10 20 -y 30 --baz -z
Jakub: externs are the highest priority
JT: need someone to step up and update the signatures, nobody's finishing them
Darren: can't really finish cargo completions, there's an infinite number if you consider plugins etc.
Agreement that we should pass through unrecognized bits for known externals
JT: should we just use carapace for external completions?
Jakub: yeah probably
Some concern because we can't really bundle carapace, doesn't help with the default experience
Let's start with the fallthrough
exec
? Bug sourceWelcome to the posix world, problems with ssh etc.
Darren if we can't exactly mirror all the bash flags and behavior this will cause problems.
(JT: would we have to treat flags as strings if they are unknown.)
Blocker for using nushell in ssh / non-priviliged contexts on a server etc.
Conclusion We need to go to the drawing board in shelling out to externals and running exec
etc. Treat more stuff as string if necessary
Still using type-directed parsing, JT's been augmenting the existing parser
Tech demo by JT
New syntax to keep math the same
Behavior still different from how regular shell's work when it comes to the combinations
Stdin/Stdout/Stderr handling is still buggy in several places! (also in do
etc.)
Observation we can't be 100% bash compatible (dump straight from StackOverflow) without breaking core nushell functionality (free expressions for math/comparison etc.)
while
, and missing break
, continue
, return
)need some hand rolled parse logic
||
, &&
, ;
We currently treat ;
like bash
&&
General hunch: ;
should still continue to default to break on error
&&
would go well with one-liners on the internet
but \\
is really arcane for error handling
Consensus: we are different enough from bash that its not worth it
Goodnight sweet prince bashisms
Darren: if we don't get to a try
style error handling pull the simpler bash style error handling back from the drawer to keep the users able to handle their errors properly.
In zsh etc you prepend a space to the command
We could do the same
Stefan: needs a simple reedline change. Any volunteers?
Let's write up an issue
JT chatted with wasmtime person, trying to figure out whether wasm will be right for Nu in the future. Doesn't see that happening for at least a year (maybe longer).
We are probably back to JSON-RPC.
Rust ABI stability (or lack thereof) makes generics hard. wasm has similar problems.
repr(C)
works but you lose so much of Rust's functionality…
Is the current plugin system good enough for v1.0? Probably
Need a clear owner if we're going to deliver a radically revamped plugin system
Conclusion for now: keep plugins as-is, maybe someone will come along to drive plugins 2.0
Darren: try the table -e
display output hook
Darren: try out Maxim's scroll
TUI https://github.com/nushell/nushell/pull/6984
Triage if necessary, fill in small details if you are sheparding the PR
first
and last
always return 1 element, let take
return from end of list (@rgwood)
uniq -i
does not convert to lowercase (#7192) (@raccmonteiro)
ls -l
on supported platforms (@remmycat)
Pull out of here if you have concerns
less
like pager (@zhiburt)
from ...
commandsfrom json
to nuon
(closes #6989) (@webbedspace)
Only discuss if closing vs waiting is contentious
lines
reads bad bytes (@merelymyself)
seq
return a ListStream
where possible. (@merelymyself)
append
implementation. weird conversion when mixing tables with other lists