feat(tvix/eval): Implement builtins.sort
This is a bit tricky because the comparator can throw errors, so we need to propagate them out if they exist and try to avoid sorting forever by returning a reasonable ordering in this case (as short-circuiting is not available). Co-Authored-By: Vincent Ambo <tazjin@tvl.su> Change-Id: Icae1d30f43ec1ae64b2ba51e73ee467605686792 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7072 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
d0a836b0e1
commit
3412ae4956
4 changed files with 46 additions and 3 deletions
|
|
@ -1 +0,0 @@
|
|||
[ [ 42 77 147 249 483 526 ] [ 526 483 249 147 77 42 ] [ "bar" "fnord" "foo" "xyzzy" ] [ { key = 1; value = "foo"; } { key = 1; value = "fnord"; } { key = 2; value = "bar"; } ] [ [ ] [ ] [ 1 ] [ 1 4 ] [ 1 5 ] [ 1 6 ] [ 2 ] [ 2 3 ] [ 3 ] [ 3 ] ] ]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
with builtins;
|
||||
|
||||
[ (sort lessThan [ 483 249 526 147 42 77 ])
|
||||
(sort (x: y: y < x) [ 483 249 526 147 42 77 ])
|
||||
(sort lessThan [ "foo" "bar" "xyzzy" "fnord" ])
|
||||
(sort (x: y: x.key < y.key)
|
||||
[ { key = 1; value = "foo"; } { key = 2; value = "bar"; } { key = 1; value = "fnord"; } ])
|
||||
(sort lessThan [
|
||||
[ 1 6 ]
|
||||
[ ]
|
||||
[ 2 3 ]
|
||||
[ 3 ]
|
||||
[ 1 5 ]
|
||||
[ 2 ]
|
||||
[ 1 ]
|
||||
[ ]
|
||||
[ 1 4 ]
|
||||
[ 3 ]
|
||||
])
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue