Closed myitcv closed 3 years ago
This looks like it is an exponential behavior thing. Narrowed it down to
-- cue.mod/pkg/github.com/play-with-go/preguide/preguide.cue --
package preguide
#Guide: {
#Step: #Command | #Upload | #UploadFile
#uploadCommon: {
Target: string
Language: *(Target + "") | string
}
#Command: Source: string
#Upload: {
#uploadCommon
Source: string
}
#UploadFile: {
#uploadCommon// Must be an embedding.
}
Steps: [string]: en: #Step // Must be an indirection.
}
-- myguide/steps.cue --
package steps
import "github.com/play-with-go/preguide"
preguide.#Guide
Steps: step0: en: preguide.#Guide.#Command & {
Source: """
mkdir nooutput
"""
}
which does terminate, but very slowly.
Like #567, this appears to have regressed as part of https://cue-review.googlesource.com/c/cue/+/6742
Noting that this is markedly better as of v0.3.0-alpha5.0.20201129154919-e77ccb1c2e96. 6.1s vs 0.09s, but still clearly an issue.
This issue has been migrated to https://github.com/cue-lang/cue/issues/565.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.
What version of CUE are you using (
cue version
)?Does this issue reproduce with the latest release?
Yes
What did you do?
What did you expect to see?
The code to terminate in a reasonably short time.
What did you see instead?
It never terminates (left for ~10 mins, still running); CPU at 100%. Stack looks something like this:
If you remove the embedding
preguide.#Guide
inmyguide/steps.cue
thengo run main.go
takes ~0.6 secs.