Skip to content

Performance issue: KCL evaluates unused package fields #1758

Open
@bozaro

Description

@bozaro

Bug Report

Performance issue: KCL evaluates unused package fields.

1. Minimal reproduce step (Required)

Run script:

#!/bin/sh

mkdir -p unused_pkg

cat > kcl.mod <<EOF
[package]
name = "__main__"
edition = "0.0.1"
version = "0.0.1"
EOF

cat > main.k  <<EOF
import unused_pkg
EOF

cat > unused_pkg/data.k <<EOF
show = lambda s -> str {
    print(s)
    s
}

foo = {
    name: "foo"
    value: show("foo")
}
EOF

kcl run .

This script creates files:

  • kcl.mod
    [package]
    name = "__main__"
    edition = "0.0.1"
    version = "0.0.1"
    
  • main.k
    import unused_pkg
    
  • unused_pkg/data.k
    show = lambda s -> str {
        print(s)
        s
    }
    
    foo = {
        name: "foo"
        value: show("foo")
    }
    

And run main.k.

2. What did you expect to see? (Required)

I expect that top-level unused variables is lazy evaluated.

{}

3. What did you see instead (Required)

I see labmda output on unused top-level variable evaluation.

foo
{}

4. What is your KCL components version? (Required)

0.10.9-linux-amd64

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions