Skip to content

evalv3 structural cycle regression compared to evalv2 #3903

Closed
@mvdan

Description

@mvdan
# evalv2
env CUE_EXPERIMENT=evalv3=0
exec cue export

# evalv3
env CUE_EXPERIMENT=evalv3=1
exec cue export

-- input.cue --
package p

s1: #Schema & {
	_deps: [s2]
	_local: ["s1 local"]
}
s2: #Schema & {
	_local: ["s2 local"]
}

#Schema: {
	_local: [...string]
	_deps: [...]

	objs: [
		for obj in _local { obj },

		for dep in _deps
		for obj in (dep & {}).objs {
			obj
		},
	]
}

As of a7e97fe:

# evalv2 (0.011s)
> env CUE_EXPERIMENT=evalv3=0
> exec cue export
[stdout]
{
    "s1": {
        "objs": [
            "s1 local",
            "s2 local"
        ]
    },
    "s2": {
        "objs": [
            "s2 local"
        ]
    }
}
# evalv3 (0.013s)
> env CUE_EXPERIMENT=evalv3=1
> exec cue export
[stderr]
structural cycle:
    ./input.cue:7:5
[exit status 1]
FAIL: repro-evalv3.txtar:7: unexpected command failure

Thanks to @nxcc for reporting this - the above was reduced from a private reproducer he shared with us.

Metadata

Metadata

Assignees

No one assigned

    Labels

    evaluatorevalv3issues affecting only the evaluator version 3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions