this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

cue/cuecontext: cuecontext.New observes evalv3 experiment by default

The default can still be overridden by setting the
evaluator version directly in the API.

Signed-off-by: Marcel van Lohuizen <mpvl@gmail.com>
Change-Id: If4dcdac20a42b012ff5c8a57553ddd178ea4e512
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1202685
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>

+36 -1
+26
cue/cuecontext/cuecontext_test.go
··· 20 20 21 21 "cuelang.org/go/cue" 22 22 "cuelang.org/go/cue/ast" 23 + "cuelang.org/go/internal" 24 + "cuelang.org/go/internal/core/runtime" 25 + "cuelang.org/go/internal/cueexperiment" 23 26 ) 24 27 25 28 func TestAPI(t *testing.T) { ··· 72 75 `) 73 76 }() 74 77 } 78 + 79 + func TestEvalVersion(t *testing.T) { 80 + cueexperiment.Init() 81 + saved := cueexperiment.Flags.EvalV3 82 + defer func() { cueexperiment.Flags.EvalV3 = saved }() 83 + 84 + test := func(c *cue.Context, want internal.EvaluatorVersion) { 85 + got, _ := (*runtime.Runtime)(c).Settings() 86 + if got != want { 87 + t.Errorf("got %v; want %v", got, want) 88 + } 89 + } 90 + 91 + cueexperiment.Flags.EvalV3 = true 92 + 93 + test(New(), internal.DevVersion) 94 + test(New(EvaluatorVersion(EvalV2)), internal.DefaultVersion) 95 + test(New(EvaluatorVersion(EvalV3)), internal.DevVersion) 96 + 97 + cueexperiment.Flags.EvalV3 = false 98 + 99 + test(New(), internal.DefaultVersion) 100 + }
+10 -1
internal/core/runtime/runtime.go
··· 18 18 "cuelang.org/go/cue/build" 19 19 "cuelang.org/go/internal" 20 20 "cuelang.org/go/internal/cuedebug" 21 + "cuelang.org/go/internal/cueexperiment" 21 22 ) 22 23 23 24 // A Runtime maintains data structures for indexing and reuse for evaluation. ··· 59 60 // debug flags. The builtins registered with RegisterBuiltin are available for 60 61 // evaluation. 61 62 func NewWithSettings(v internal.EvaluatorVersion, flags cuedebug.Config) *Runtime { 62 - r := &Runtime{version: v, flags: flags} 63 + r := &Runtime{flags: flags} 63 64 r.Init() 65 + r.version = v 64 66 return r 65 67 } 66 68 ··· 93 95 r.index.builtinShort = sharedIndex.builtinShort 94 96 95 97 r.loaded = map[*build.Instance]interface{}{} 98 + 99 + cueexperiment.Init() 100 + if cueexperiment.Flags.EvalV3 { 101 + r.version = internal.DevVersion 102 + } else { 103 + r.version = internal.DefaultVersion 104 + } 96 105 }