mirror of
https://github.com/apple/pkl.git
synced 2026-01-11 14:20:35 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8bd738ec0b | ||
|
|
7569b96088 | ||
|
|
ad131b5543 | ||
|
|
640cc129db | ||
|
|
1d14a750a5 | ||
|
|
6a1d56bb4d | ||
|
|
0902cbc628 | ||
|
|
7717b702b2 | ||
|
|
c5c0c20caa |
@@ -14,7 +14,7 @@
|
||||
// limitations under the License.
|
||||
//===----------------------------------------------------------------------===//
|
||||
// File gets rendered to .circleci/config.yml via git hook.
|
||||
amends "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.circleci@1.1.1#/PklCI.pkl"
|
||||
amends "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.circleci@1.2.0#/PklCI.pkl"
|
||||
|
||||
import "jobs/BuildNativeJob.pkl"
|
||||
import "jobs/GradleCheckJob.pkl"
|
||||
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
environment:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /Users/distiller/jdk/Contents/Home
|
||||
resource_class: macos.m1.large.gen1
|
||||
resource_class: m2pro.large
|
||||
macos:
|
||||
xcode: 15.3.0
|
||||
pkl-cli-linux-amd64-release:
|
||||
@@ -142,7 +142,7 @@ jobs:
|
||||
environment:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /Users/distiller/jdk/Contents/Home
|
||||
resource_class: macos.m1.large.gen1
|
||||
resource_class: m2pro.large
|
||||
macos:
|
||||
xcode: 15.3.0
|
||||
pkl-cli-linux-aarch64-release:
|
||||
@@ -347,7 +347,7 @@ jobs:
|
||||
environment:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /Users/distiller/jdk/Contents/Home
|
||||
resource_class: macos.m1.large.gen1
|
||||
resource_class: m2pro.large
|
||||
macos:
|
||||
xcode: 15.3.0
|
||||
pkl-cli-linux-amd64-snapshot:
|
||||
@@ -455,7 +455,7 @@ jobs:
|
||||
environment:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /Users/distiller/jdk/Contents/Home
|
||||
resource_class: macos.m1.large.gen1
|
||||
resource_class: m2pro.large
|
||||
macos:
|
||||
xcode: 15.3.0
|
||||
pkl-cli-linux-aarch64-snapshot:
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/// Builds the native `pkl` CLI
|
||||
extends "GradleJob.pkl"
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.2#/Config.pkl"
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.5.0#/Config.pkl"
|
||||
|
||||
/// The architecture to use
|
||||
arch: "amd64"|"aarch64"
|
||||
@@ -158,7 +158,7 @@ job {
|
||||
macos {
|
||||
xcode = "15.3.0"
|
||||
}
|
||||
resource_class = "macos.m1.large.gen1"
|
||||
resource_class = "m2pro.large"
|
||||
environment {
|
||||
["JAVA_HOME"] = "/Users/distiller/jdk/Contents/Home"
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
extends "GradleJob.pkl"
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.2#/Config.pkl"
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.5.0#/Config.pkl"
|
||||
|
||||
local self = this
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
extends "GradleJob.pkl"
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.2#/Config.pkl"
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.5.0#/Config.pkl"
|
||||
|
||||
steps {
|
||||
new Config.RunStep {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
abstract module GradleJob
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.2#/Config.pkl"
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.5.0#/Config.pkl"
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.uri@1.0.3#/URI.pkl"
|
||||
|
||||
/// Whether this is a release build or not.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
extends "GradleJob.pkl"
|
||||
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.2#/Config.pkl"
|
||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.5.0#/Config.pkl"
|
||||
|
||||
name: String = command
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: main
|
||||
title: Main Project
|
||||
version: 0.28.1
|
||||
version: 0.28.2
|
||||
prerelease: false
|
||||
nav:
|
||||
- nav.adoc
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
Sometimes, a change to Pkl is large enough that it makes sense to create a proposal for the change so that it can be discussed in detail and vetted.
|
||||
|
||||
Pkl has a process for managing such designs in a repository called {uri-pkl-evolution}[Pkl Evolutiuon].
|
||||
Pkl has a process for managing such designs in a repository called {uri-pkl-evolution}[Pkl Evolution].
|
||||
|
||||
== Roadmap
|
||||
|
||||
@@ -17,4 +17,4 @@ The roadmap describes estimates.
|
||||
The Pkl team aims to cut a release in February, June, and October of each year.
|
||||
If an item is not complete by the release cutoff date, the roadmap item may be bumped to the next release.
|
||||
|
||||
Additionally, as priorities change, it is possible that items can be moved around, or backlogged.
|
||||
Additionally, as priorities change, it is possible that items can be moved around or backlogged.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// the following attributes must be updated immediately before a release
|
||||
|
||||
// pkl version corresponding to current git commit without -dev suffix or git hash
|
||||
:pkl-version-no-suffix: 0.28.1
|
||||
:pkl-version-no-suffix: 0.28.2
|
||||
// tells whether pkl version corresponding to current git commit
|
||||
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
||||
:is-release-version: ''
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
= CLI
|
||||
include::ROOT:partial$component-attributes.adoc[]
|
||||
:uri-homebrew: https://brew.sh
|
||||
:uri-mise: https://mise.jdx.dev
|
||||
|
||||
:uri-sonatype-snapshot-download: https://s01.oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=org.pkl-lang&v={pkl-artifact-version}
|
||||
:uri-pkl-macos-amd64-download: {uri-sonatype-snapshot-download}&a=pkl-cli-macos-amd64&e=bin
|
||||
@@ -84,6 +85,29 @@ ifndef::is-release-version[]
|
||||
For instructions, switch to a release version of this page.
|
||||
endif::[]
|
||||
|
||||
[[mise]]
|
||||
=== Mise
|
||||
|
||||
On macOS, Linux, and Windows, release versions can be installed with {uri-mise}[Mise].
|
||||
|
||||
ifdef::is-release-version[]
|
||||
To install Pkl, run:
|
||||
|
||||
[source,shell]
|
||||
[subs="+attributes"]
|
||||
----
|
||||
# Install and activate Pkl globally
|
||||
mise use -g pkl@{pkl-version}
|
||||
|
||||
# Install and activate Pkl locally
|
||||
mise use pkl@{pkl-version}
|
||||
----
|
||||
endif::[]
|
||||
|
||||
ifndef::is-release-version[]
|
||||
For instructions, switch to a release version of this page.
|
||||
endif::[]
|
||||
|
||||
[[download]]
|
||||
=== Download
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
= Pkl 0.28 Release Notes
|
||||
:version: 0.28
|
||||
:version-minor: 0.28.1
|
||||
:version-minor: 0.28.2
|
||||
:release-date: February 26th, 2025
|
||||
|
||||
include::ROOT:partial$component-attributes.adoc[]
|
||||
|
||||
@@ -1,6 +1,29 @@
|
||||
= Changelog
|
||||
include::ROOT:partial$component-attributes.adoc[]
|
||||
|
||||
[[release-0.28.2]]
|
||||
== 0.28.2 (2025-04-17)
|
||||
|
||||
=== Fixes
|
||||
|
||||
* Adds an optimization when object bodies with generators produce no members (https://github.com/apple/pkl/pull/1013[#1013]).
|
||||
* Fixes a runtime crash when `--output-path` points to a directory (https://github.com/apple/pkl/pull/1038[#1038]).
|
||||
* Fixes a bug that sometimes causes pkl-doc to crash (https://github.com/apple/pkl/pull/1028[#1028]).
|
||||
|
||||
=== Miscellaneous
|
||||
|
||||
* Documentation improvements (https://github.com/apple/pkl/pull/982[#982], https://github.com/apple/pkl/pull/1010[#1010], https://github.com/apple/pkl/pull/1031[#1031]).
|
||||
* CI improvements (https://github.com/apple/pkl/pull/1020[#1020]).
|
||||
|
||||
=== Contributors ❤️
|
||||
|
||||
Thank you to all the contributors for this release!
|
||||
|
||||
* https://github.com/JeroenSoeters[@JeroenSoeters]
|
||||
* https://github.com/KushalP[@KushalP]
|
||||
* https://github.com/mbvissers[@mbvissers]
|
||||
* https://github.com/pepicrft[@pepicrft]
|
||||
|
||||
[[release-0.28.1]]
|
||||
== 0.28.1 (2025-03-03)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# suppress inspection "UnusedProperty" for whole file
|
||||
|
||||
group=org.pkl-lang
|
||||
version=0.28.1
|
||||
version=0.28.2
|
||||
|
||||
# google-java-format requires jdk.compiler exports
|
||||
org.gradle.jvmargs= \
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
"catalogs": {},
|
||||
"aliases": {
|
||||
"pkl": {
|
||||
"script-ref": "org.pkl-lang:pkl-cli-java:0.28.1",
|
||||
"script-ref": "org.pkl-lang:pkl-cli-java:0.28.2",
|
||||
"java-agents": []
|
||||
},
|
||||
"pkl-codegen-java": {
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-java:0.28.1",
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-java:0.28.2",
|
||||
"java-agents": []
|
||||
},
|
||||
"pkl-codegen-kotlin": {
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.28.1",
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.28.2",
|
||||
"java-agents": []
|
||||
}
|
||||
},
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.io.File
|
||||
import java.io.Reader
|
||||
import java.io.Writer
|
||||
import java.net.URI
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.StandardOpenOption
|
||||
import kotlin.io.path.createParentDirectories
|
||||
@@ -152,6 +153,12 @@ constructor(
|
||||
for ((moduleUri, outputFile) in outputFiles) {
|
||||
val moduleSource = toModuleSource(moduleUri, consoleReader)
|
||||
val output = evaluator.evaluateExpressionString(moduleSource, options.expression)
|
||||
if (Files.isDirectory(outputFile)) {
|
||||
throw CliException(
|
||||
"Output file `$outputFile` is a directory. " +
|
||||
"Did you mean `--multiple-file-output-path`?"
|
||||
)
|
||||
}
|
||||
outputFile.createParentDirectories()
|
||||
if (!writtenFiles.contains(outputFile)) {
|
||||
// write file even if output is empty to overwrite output from previous runs
|
||||
|
||||
@@ -725,6 +725,39 @@ result = someLib.x
|
||||
assertThat(output).endsWith("\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `file output throws if output file is a directory`() {
|
||||
val sourceFiles =
|
||||
listOf(
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
name = "test"
|
||||
output {
|
||||
files {
|
||||
["\(name).txt"] {
|
||||
text = "test"
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
)
|
||||
val err =
|
||||
assertThrows<CliException> {
|
||||
evalToFiles(
|
||||
CliEvaluatorOptions(
|
||||
CliBaseOptions(sourceModules = sourceFiles),
|
||||
outputPath = tempDir.toString(),
|
||||
)
|
||||
)
|
||||
}
|
||||
assertThat(err)
|
||||
.hasMessageContaining("Output file `$tempDir` is a directory. ")
|
||||
.hasMessageContaining("Did you mean `--multiple-file-output-path`?")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `multiple file output writes multiple files to the provided directory`() {
|
||||
val contents =
|
||||
|
||||
@@ -73,6 +73,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
@Specialization(guards = "checkObjectCannotHaveParameters()")
|
||||
protected VmDynamic evalDynamic(VirtualFrame frame, VmDynamic parent) {
|
||||
var data = executeChildren(frame, parent, parent.getLength());
|
||||
if (data.hasNoMembers()) {
|
||||
return parent;
|
||||
}
|
||||
var result = new VmDynamic(frame.materialize(), parent, data.members(), data.length());
|
||||
return data.storeGeneratorFrames(result);
|
||||
}
|
||||
@@ -81,6 +84,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
protected VmTyped evalTyped(VirtualFrame frame, VmTyped parent) {
|
||||
VmUtils.checkIsInstantiable(parent.getVmClass(), getParentNode());
|
||||
var data = executeChildren(frame, parent, 0);
|
||||
if (data.hasNoMembers()) {
|
||||
return parent;
|
||||
}
|
||||
assert data.hasNoGeneratorFrames();
|
||||
return new VmTyped(frame.materialize(), parent, parent.getVmClass(), data.members());
|
||||
}
|
||||
@@ -88,6 +94,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
@Specialization(guards = "checkListingCannotHaveParameters()")
|
||||
protected VmListing evalListing(VirtualFrame frame, VmListing parent) {
|
||||
var data = executeChildren(frame, parent, parent.getLength());
|
||||
if (data.hasNoMembers()) {
|
||||
return parent;
|
||||
}
|
||||
var result = new VmListing(frame.materialize(), parent, data.members(), data.length());
|
||||
return data.storeGeneratorFrames(result);
|
||||
}
|
||||
@@ -95,6 +104,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
@Specialization(guards = "checkMappingCannotHaveParameters()")
|
||||
protected VmMapping evalMapping(VirtualFrame frame, VmMapping parent) {
|
||||
var data = executeChildren(frame, parent, 0);
|
||||
if (data.hasNoMembers()) {
|
||||
return parent;
|
||||
}
|
||||
var result = new VmMapping(frame.materialize(), parent, data.members());
|
||||
return data.storeGeneratorFrames(result);
|
||||
}
|
||||
@@ -118,6 +130,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
@Specialization(guards = {"parent == getDynamicClass()", "checkObjectCannotHaveParameters()"})
|
||||
protected VmDynamic evalDynamicClass(VirtualFrame frame, VmClass parent) {
|
||||
var data = executeChildren(frame, parent, 0);
|
||||
if (data.hasNoMembers()) {
|
||||
return VmDynamic.empty();
|
||||
}
|
||||
var result =
|
||||
new VmDynamic(frame.materialize(), parent.getPrototype(), data.members(), data.length());
|
||||
return data.storeGeneratorFrames(result);
|
||||
@@ -126,6 +141,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
@Specialization(guards = {"parent == getMappingClass()", "checkMappingCannotHaveParameters()"})
|
||||
protected VmMapping evalMappingClass(VirtualFrame frame, VmClass parent) {
|
||||
var data = executeChildren(frame, parent, 0);
|
||||
if (data.hasNoMembers()) {
|
||||
return VmMapping.empty();
|
||||
}
|
||||
var result = new VmMapping(frame.materialize(), parent.getPrototype(), data.members());
|
||||
return data.storeGeneratorFrames(result);
|
||||
}
|
||||
@@ -133,6 +151,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
@Specialization(guards = {"parent == getListingClass()", "checkListingCannotHaveParameters()"})
|
||||
protected VmListing evalListingClass(VirtualFrame frame, VmClass parent) {
|
||||
var data = executeChildren(frame, parent, 0);
|
||||
if (data.hasNoMembers()) {
|
||||
return VmListing.empty();
|
||||
}
|
||||
var result =
|
||||
new VmListing(frame.materialize(), parent.getPrototype(), data.members(), data.length());
|
||||
return data.storeGeneratorFrames(result);
|
||||
@@ -142,6 +163,9 @@ public abstract class GeneratorObjectLiteralNode extends ObjectLiteralNode {
|
||||
protected VmTyped evalTypedObjectClass(VirtualFrame frame, VmClass parent) {
|
||||
VmUtils.checkIsInstantiable(parent, getParentNode());
|
||||
var data = executeChildren(frame, parent, 0);
|
||||
if (data.hasNoMembers()) {
|
||||
return parent.getPrototype();
|
||||
}
|
||||
assert data.hasNoGeneratorFrames();
|
||||
return new VmTyped(frame.materialize(), parent.getPrototype(), parent, data.members());
|
||||
}
|
||||
|
||||
@@ -55,6 +55,10 @@ public final class ObjectData {
|
||||
return length;
|
||||
}
|
||||
|
||||
boolean hasNoMembers() {
|
||||
return members.isEmpty();
|
||||
}
|
||||
|
||||
boolean hasNoGeneratorFrames() {
|
||||
return generatorFrames.isEmpty();
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ import org.pkl.core.util.Nullable;
|
||||
@TruffleLanguage.Registration(
|
||||
id = "pkl",
|
||||
name = "Pkl",
|
||||
version = "0.28.1",
|
||||
version = "0.28.2",
|
||||
characterMimeTypes = VmLanguage.MIME_TYPE,
|
||||
contextPolicy = ContextPolicy.SHARED)
|
||||
public final class VmLanguage extends TruffleLanguage<VmContext> {
|
||||
|
||||
46
pkl-core/src/test/files/LanguageSnippetTests/input/generators/generatorNoMembers.pkl
vendored
Normal file
46
pkl-core/src/test/files/LanguageSnippetTests/input/generators/generatorNoMembers.pkl
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
// should only result in one trace in the output; generator object literals that don't add any
|
||||
// members should be optimized away.
|
||||
res1 {
|
||||
prop = trace("hello")
|
||||
}
|
||||
|
||||
res2 = (res1) {
|
||||
when (false) {
|
||||
prop2 = 2
|
||||
}
|
||||
}
|
||||
|
||||
res3 = (res1) {
|
||||
for (_ in List()) {
|
||||
"hello"
|
||||
}
|
||||
}
|
||||
|
||||
res4 = (res1) {
|
||||
...List()
|
||||
}
|
||||
|
||||
res5 = (res1) {
|
||||
when (true) {
|
||||
} else {
|
||||
prop3 = 3
|
||||
}
|
||||
}
|
||||
|
||||
res6 = (Dynamic) {
|
||||
when (true) {}
|
||||
}
|
||||
|
||||
res7 = (Mapping) {
|
||||
when (true) {}
|
||||
}
|
||||
|
||||
class Person {}
|
||||
|
||||
res8 = (Person) {
|
||||
when (true) {}
|
||||
}
|
||||
|
||||
res9 = (Listing) {
|
||||
when (true) {}
|
||||
}
|
||||
20
pkl-core/src/test/files/LanguageSnippetTests/output/generators/generatorNoMembers.err
vendored
Normal file
20
pkl-core/src/test/files/LanguageSnippetTests/output/generators/generatorNoMembers.err
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
res1 {
|
||||
prop = "hello"
|
||||
}
|
||||
res2 {
|
||||
prop = "hello"
|
||||
}
|
||||
res3 {
|
||||
prop = "hello"
|
||||
}
|
||||
res4 {
|
||||
prop = "hello"
|
||||
}
|
||||
res5 {
|
||||
prop = "hello"
|
||||
}
|
||||
res6 {}
|
||||
res7 {}
|
||||
res8 {}
|
||||
res9 {}
|
||||
pkl: TRACE: "hello" = "hello" (file:///$snippetsDir/input/generators/generatorNoMembers.pkl)
|
||||
@@ -414,7 +414,9 @@ private fun findTypesUsedBy(
|
||||
enclosingPackage.name,
|
||||
enclosingPackage.uri,
|
||||
enclosingPackage.version,
|
||||
enclosingType.moduleName.substring(enclosingPackage.name.length + 1).replace('.', '/'),
|
||||
enclosingType.moduleName
|
||||
.substring(enclosingPackage.moduleNamePrefix.length)
|
||||
.replace('.', '/'),
|
||||
PClassInfo.MODULE_CLASS_NAME,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
///
|
||||
/// Warning: Although this module is ready for initial use,
|
||||
/// benchmark results may be inaccurate or inconsistent.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.Benchmark
|
||||
|
||||
import "pkl:platform" as _platform
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
/// @Deprecated { message = "Use `com.example.Birds.Parrot` instead" }
|
||||
/// amends "pkl:PackageInfo"
|
||||
/// ```
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.DocPackageInfo
|
||||
|
||||
import "pkl:reflect"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
///
|
||||
/// title = "Title displayed in the header of each page"
|
||||
/// ```
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.DocsiteInfo
|
||||
|
||||
import "pkl:reflect"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// Common settings for Pkl's own evaluator.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
@Since { version = "0.26.0" }
|
||||
module pkl.EvaluatorSettings
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
/// value = project
|
||||
/// }
|
||||
/// ```
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.Project
|
||||
|
||||
import "pkl:EvaluatorSettings" as EvaluatorSettingsModule
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/// These tools differentiate from [pkl:reflect][reflect] in that they parse Pkl modules, but do not
|
||||
/// execute any code within these modules.
|
||||
@Since { version = "0.27.0" }
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.analyze
|
||||
|
||||
// used by doc comments
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/// Fundamental properties, methods, and classes for writing Pkl programs.
|
||||
///
|
||||
/// Members of this module are automatically available in every Pkl module.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.base
|
||||
|
||||
import "pkl:jsonnet"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// A JSON parser.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.json
|
||||
|
||||
/// A JSON parser.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// A [Jsonnet](https://jsonnet.org) renderer.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.jsonnet
|
||||
|
||||
/// Constructs an [ImportStr].
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
///
|
||||
/// Note that some mathematical functions, such as `sign()`, `abs()`, and `round()`,
|
||||
/// are directly defined in classes [Number], [Int], and [Float].
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.math
|
||||
|
||||
/// The minimum [Int] value: `-9223372036854775808`.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// Information about the platform that the current program runs on.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.platform
|
||||
|
||||
/// The platform that the current program runs on.
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/// A renderer for [Protocol Buffers](https://developers.google.com/protocol-buffers).
|
||||
/// Note: This module is _experimental_ and not ready for production use.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.protobuf
|
||||
|
||||
import "pkl:reflect"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// - Documentation generators (such as *Pkldoc*)
|
||||
/// - Code generators (such as *pkl-codegen-java* and *pkl-codegen-kotlin*)
|
||||
/// - Domain-specific schema validators
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.reflect
|
||||
|
||||
import "pkl:base"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// Information about the Pkl release that the current program runs on.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.release
|
||||
|
||||
import "pkl:semver"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// Parsing, comparison, and manipulation of [semantic version](https://semver.org/spec/v2.0.0.html) numbers.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.semver
|
||||
|
||||
/// Tells whether [version] is a valid semantic version number.
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/// Every settings file must amend this module.
|
||||
/// Unless CLI commands and build tool plugins are explicitly configured with a settings file,
|
||||
/// they will use `~/.pkl/settings.pkl` or the defaults specified in this module.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.settings
|
||||
|
||||
import "pkl:EvaluatorSettings"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// Utilities for generating shell scripts.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.shell
|
||||
|
||||
/// Escapes [str] by enclosing it in single quotes.
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
///
|
||||
/// To write tests, amend this module and define [facts] or [examples] (or both).
|
||||
/// To run tests, evaluate the amended module.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
open module pkl.test
|
||||
|
||||
/// Named groups of boolean expressions that are expected to evaluate to [true].
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// An XML renderer.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.xml
|
||||
|
||||
/// Renders values as XML.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// A YAML 1.2 compliant YAML parser.
|
||||
@ModuleInfo { minPklVersion = "0.28.1" }
|
||||
@ModuleInfo { minPklVersion = "0.28.2" }
|
||||
module pkl.yaml
|
||||
|
||||
/// A YAML parser.
|
||||
|
||||
Reference in New Issue
Block a user