pkl icon indicating copy to clipboard operation
pkl copied to clipboard

Support evaluating just an expression

Open odenix opened this issue 1 year ago • 4 comments

Occasionally it can be useful to evaluate just an expression. Currently, pkl eval -x requires to also specify a module. A cross-platform workaround is pkl eval pkl:base -x. However, it would be nice if pkl eval -x just worked.

odenix avatar Oct 19 '24 03:10 odenix

Curious: what are the use-cases for this? I've found myself rarely ever wanting to run just an expression unless I'm testing something, and in those cases, I fire up the REPL.

bioball avatar Oct 21 '24 17:10 bioball

I’m used to this feature from other scripting languages, hence requiring a module after -x feels surprising and unnecessary to me. That said, some of the ad-hoc scripting use cases I had in mind are better served by reading a source module from stdin (-). Perhaps @HT154 has something to add.

odenix avatar Oct 21 '24 19:10 odenix

I do this because I'm REPL-averse (it's a personal failing, not Pkl's) and have a ton of jq muscle memory. Most of what I actually use this for are quick "how does Pkl handle XYZ?" checks that are probably served equally well by the REPL.

HT154 avatar Oct 21 '24 19:10 HT154

FWIW: you can also eval from stdin too. In that case, you need to provide a module, rather than an expression.

echo "foo = 1" | pkl eval -

I don't think this ask is unreasonable, but I'd like to wait for more feedback on the need for this before adding support for it.

bioball avatar Oct 21 '24 20:10 bioball