mirror of
https://github.com/apple/pkl.git
synced 2026-05-26 00:29:14 +02:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 91820100f7 | |||
| 4ae98b4bf6 | |||
| 4006c087d9 | |||
| 87d91b1950 | |||
| 29cb8ea4f2 | |||
| a490e9d811 | |||
| c8786f61e3 | |||
| f3a93cdd78 | |||
| e5a81b6803 | |||
| 441bc5861a | |||
| de4f0e995b | |||
| 346880f9cf | |||
| 906111d327 | |||
| 08be512fe1 | |||
| 6b04e1d606 | |||
| 1452dc5af3 | |||
| 3421a97478 | |||
| 0829ac486c | |||
| 8209ea78bd | |||
| d9f8b8efa9 | |||
| a210bfd6a3 | |||
| f26195509f | |||
| 49556737c6 | |||
| 2ccebd3aed | |||
| 504c4a3213 | |||
| f7921f0c6f | |||
| 56d88c9efc | |||
| f260c8553c |
+65
-8
@@ -14,14 +14,16 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// File gets rendered to .circleci/config.yml via git hook.
|
// File gets rendered to .circleci/config.yml via git hook.
|
||||||
amends "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.circleci@1.0.1#/PklCI.pkl"
|
amends "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.circleci@1.1.0#/PklCI.pkl"
|
||||||
|
|
||||||
import "jobs/BuildNativeJob.pkl"
|
import "jobs/BuildNativeJob.pkl"
|
||||||
import "jobs/GradleCheckJob.pkl"
|
import "jobs/GradleCheckJob.pkl"
|
||||||
import "jobs/DeployJob.pkl"
|
import "jobs/DeployJob.pkl"
|
||||||
import "jobs/SimpleGradleJob.pkl"
|
import "jobs/SimpleGradleJob.pkl"
|
||||||
|
|
||||||
local prbJobs: Listing<String> = gradleCheckJobs.keys.toListing()
|
local prbJobs: Listing<String> = (gradleCheckJobs.keys.toListing()) {
|
||||||
|
"check-patch-file"
|
||||||
|
}
|
||||||
|
|
||||||
local buildAndTestJobs = (prbJobs) {
|
local buildAndTestJobs = (prbJobs) {
|
||||||
"bench"
|
"bench"
|
||||||
@@ -51,6 +53,44 @@ main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: remove me once policy allows these jobs without approval
|
||||||
|
circleCi {
|
||||||
|
workflows {
|
||||||
|
["release-branch"] {
|
||||||
|
jobs = new Listing<*Mapping<String, WorkflowJob>|String> {
|
||||||
|
new {
|
||||||
|
["hold"] {
|
||||||
|
type = "approval"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
["pr-approval/authenticate"] {
|
||||||
|
context = "pkl-pr-approval"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (job in super.jobs) {
|
||||||
|
job |> requireApproval
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: remove me once policy allows these jobs without approval
|
||||||
|
local requireApproval = (it: String|Mapping<String, WorkflowJob>) ->
|
||||||
|
if (it is String)
|
||||||
|
new Mapping<String, WorkflowJob> {
|
||||||
|
[it] {
|
||||||
|
requires { "hold" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
(it) {
|
||||||
|
[it.keys.first] {
|
||||||
|
requires { "hold" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
release {
|
release {
|
||||||
jobs {
|
jobs {
|
||||||
...releaseJobs
|
...releaseJobs
|
||||||
@@ -71,6 +111,10 @@ release {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
releaseBranch {
|
||||||
|
jobs = releaseJobs
|
||||||
|
}
|
||||||
|
|
||||||
triggerDocsBuild = "both"
|
triggerDocsBuild = "both"
|
||||||
|
|
||||||
triggerPackageDocsBuild = "release"
|
triggerPackageDocsBuild = "release"
|
||||||
@@ -122,24 +166,22 @@ jobs {
|
|||||||
:pkl-gradle:compatibilityTestCandidate
|
:pkl-gradle:compatibilityTestCandidate
|
||||||
"""#
|
"""#
|
||||||
}.job
|
}.job
|
||||||
["deploy-snapshot"] = new DeployJob {
|
["deploy-snapshot"] = new DeployJob { command = "publishToSonatype" }.job
|
||||||
command = "publishToSonatype"
|
|
||||||
}.job
|
|
||||||
["deploy-release"] = new DeployJob {
|
["deploy-release"] = new DeployJob {
|
||||||
isRelease = true
|
isRelease = true
|
||||||
command = "publishToSonatype closeAndReleaseSonatypeStagingRepository"
|
command = "publishToSonatype closeAndReleaseSonatypeStagingRepository"
|
||||||
}.job
|
}.job
|
||||||
["github-release"] {
|
["github-release"] {
|
||||||
docker {
|
docker {
|
||||||
new {
|
new { image = "maniator/gh:v2.40.1" }
|
||||||
image = "maniator/gh:v2.40.1"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
new AttachWorkspaceStep { at = "." }
|
new AttachWorkspaceStep { at = "." }
|
||||||
new RunStep {
|
new RunStep {
|
||||||
name = "Publish release on GitHub"
|
name = "Publish release on GitHub"
|
||||||
command = #"""
|
command = #"""
|
||||||
|
# exclude build_artifacts.txt from publish
|
||||||
|
rm pkl-cli/build/executable/*.build_artifacts.txt
|
||||||
gh release create "${CIRCLE_TAG}" \
|
gh release create "${CIRCLE_TAG}" \
|
||||||
--title "${CIRCLE_TAG}" \
|
--title "${CIRCLE_TAG}" \
|
||||||
--target "${CIRCLE_SHA1}" \
|
--target "${CIRCLE_SHA1}" \
|
||||||
@@ -151,4 +193,19 @@ jobs {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
["check-patch-file"] {
|
||||||
|
docker {
|
||||||
|
new { image = "cimg/base:current" }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
"checkout"
|
||||||
|
new RunStep {
|
||||||
|
// language=bash
|
||||||
|
command = #"""
|
||||||
|
git apply --reject patches/graalVm23.patch
|
||||||
|
"""#
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resource_class = "small"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+67
-2
@@ -661,6 +661,10 @@ jobs:
|
|||||||
at: '.'
|
at: '.'
|
||||||
- run:
|
- run:
|
||||||
command: ./gradlew --info --stacktrace publishToSonatype
|
command: ./gradlew --info --stacktrace publishToSonatype
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: '.'
|
||||||
|
paths:
|
||||||
|
- pkl-cli/build/executable/
|
||||||
- run:
|
- run:
|
||||||
command: |-
|
command: |-
|
||||||
mkdir ~/test-results/
|
mkdir ~/test-results/
|
||||||
@@ -680,6 +684,10 @@ jobs:
|
|||||||
at: '.'
|
at: '.'
|
||||||
- run:
|
- run:
|
||||||
command: ./gradlew --info --stacktrace -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
command: ./gradlew --info --stacktrace -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: '.'
|
||||||
|
paths:
|
||||||
|
- pkl-cli/build/executable/
|
||||||
- run:
|
- run:
|
||||||
command: |-
|
command: |-
|
||||||
mkdir ~/test-results/
|
mkdir ~/test-results/
|
||||||
@@ -698,6 +706,8 @@ jobs:
|
|||||||
at: '.'
|
at: '.'
|
||||||
- run:
|
- run:
|
||||||
command: |-
|
command: |-
|
||||||
|
# exclude build_artifacts.txt from publish
|
||||||
|
rm pkl-cli/build/executable/*.build_artifacts.txt
|
||||||
gh release create "${CIRCLE_TAG}" \
|
gh release create "${CIRCLE_TAG}" \
|
||||||
--title "${CIRCLE_TAG}" \
|
--title "${CIRCLE_TAG}" \
|
||||||
--target "${CIRCLE_SHA1}" \
|
--target "${CIRCLE_SHA1}" \
|
||||||
@@ -708,6 +718,14 @@ jobs:
|
|||||||
name: Publish release on GitHub
|
name: Publish release on GitHub
|
||||||
docker:
|
docker:
|
||||||
- image: maniator/gh:v2.40.1
|
- image: maniator/gh:v2.40.1
|
||||||
|
check-patch-file:
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
command: git apply --reject patches/graalVm23.patch
|
||||||
|
resource_class: small
|
||||||
|
docker:
|
||||||
|
- image: cimg/base:current
|
||||||
trigger-docsite-build:
|
trigger-docsite-build:
|
||||||
steps:
|
steps:
|
||||||
- run:
|
- run:
|
||||||
@@ -744,11 +762,12 @@ workflows:
|
|||||||
- gradle-check-jdk11:
|
- gradle-check-jdk11:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- hold
|
||||||
- pr-approval/authenticate
|
|
||||||
- gradle-check-jdk17:
|
- gradle-check-jdk17:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- hold
|
||||||
- pr-approval/authenticate
|
- check-patch-file:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
when:
|
when:
|
||||||
matches:
|
matches:
|
||||||
value: << pipeline.git.branch >>
|
value: << pipeline.git.branch >>
|
||||||
@@ -757,6 +776,7 @@ workflows:
|
|||||||
jobs:
|
jobs:
|
||||||
- gradle-check-jdk11
|
- gradle-check-jdk11
|
||||||
- gradle-check-jdk17
|
- gradle-check-jdk17
|
||||||
|
- check-patch-file
|
||||||
- bench
|
- bench
|
||||||
- pkl-cli-macOS-amd64-snapshot
|
- pkl-cli-macOS-amd64-snapshot
|
||||||
- pkl-cli-linux-amd64-snapshot
|
- pkl-cli-linux-amd64-snapshot
|
||||||
@@ -767,6 +787,7 @@ workflows:
|
|||||||
requires:
|
requires:
|
||||||
- gradle-check-jdk11
|
- gradle-check-jdk11
|
||||||
- gradle-check-jdk17
|
- gradle-check-jdk17
|
||||||
|
- check-patch-file
|
||||||
- bench
|
- bench
|
||||||
- pkl-cli-macOS-amd64-snapshot
|
- pkl-cli-macOS-amd64-snapshot
|
||||||
- pkl-cli-linux-amd64-snapshot
|
- pkl-cli-linux-amd64-snapshot
|
||||||
@@ -797,6 +818,12 @@ workflows:
|
|||||||
ignore: /.*/
|
ignore: /.*/
|
||||||
tags:
|
tags:
|
||||||
only: /^v?\d+\.\d+\.\d+$/
|
only: /^v?\d+\.\d+\.\d+$/
|
||||||
|
- check-patch-file:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
ignore: /.*/
|
||||||
|
tags:
|
||||||
|
only: /^v?\d+\.\d+\.\d+$/
|
||||||
- bench:
|
- bench:
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
@@ -837,6 +864,7 @@ workflows:
|
|||||||
requires:
|
requires:
|
||||||
- gradle-check-jdk11
|
- gradle-check-jdk11
|
||||||
- gradle-check-jdk17
|
- gradle-check-jdk17
|
||||||
|
- check-patch-file
|
||||||
- bench
|
- bench
|
||||||
- pkl-cli-macOS-amd64-release
|
- pkl-cli-macOS-amd64-release
|
||||||
- pkl-cli-linux-amd64-release
|
- pkl-cli-linux-amd64-release
|
||||||
@@ -868,3 +896,40 @@ workflows:
|
|||||||
ignore: /.*/
|
ignore: /.*/
|
||||||
tags:
|
tags:
|
||||||
only: /^v?\d+\.\d+\.\d+$/
|
only: /^v?\d+\.\d+\.\d+$/
|
||||||
|
release-branch:
|
||||||
|
jobs:
|
||||||
|
- hold:
|
||||||
|
type: approval
|
||||||
|
- pr-approval/authenticate:
|
||||||
|
context: pkl-pr-approval
|
||||||
|
- gradle-check-jdk11:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- gradle-check-jdk17:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- check-patch-file:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- bench:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- pkl-cli-macOS-amd64-release:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- pkl-cli-linux-amd64-release:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- pkl-cli-macOS-aarch64-release:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- pkl-cli-linux-aarch64-release:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
- pkl-cli-linux-alpine-amd64-release:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
|
when:
|
||||||
|
matches:
|
||||||
|
value: << pipeline.git.branch >>
|
||||||
|
pattern: ^release/\d+\.\d+$
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
/// Builds the native `pkl` CLI
|
/// Builds the native `pkl` CLI
|
||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.0.0#/Config.pkl"
|
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.0#/Config.pkl"
|
||||||
import "package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.uri@1.0.0#/URI.pkl"
|
import "package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.uri@1.0.0#/URI.pkl"
|
||||||
|
|
||||||
/// The OS to run on
|
/// The OS to run on
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.0.0#/Config.pkl"
|
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.0#/Config.pkl"
|
||||||
|
|
||||||
local self = this
|
local self = this
|
||||||
|
|
||||||
@@ -32,4 +32,11 @@ steps {
|
|||||||
new Config.RunStep {
|
new Config.RunStep {
|
||||||
command = "./gradlew \(self.gradleArgs) \(module.command)"
|
command = "./gradlew \(self.gradleArgs) \(module.command)"
|
||||||
}
|
}
|
||||||
|
// add jpkl to workspace so it gets published as a GitHub release
|
||||||
|
new Config.PersistToWorkspaceStep {
|
||||||
|
root = "."
|
||||||
|
paths {
|
||||||
|
"pkl-cli/build/executable/"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.0.0#/Config.pkl"
|
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.0#/Config.pkl"
|
||||||
|
|
||||||
javaVersion: "11.0"|"17.0"
|
javaVersion: "11.0"|"17.0"
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
abstract module GradleJob
|
abstract module GradleJob
|
||||||
|
|
||||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.0.0#/Config.pkl"
|
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.0#/Config.pkl"
|
||||||
|
|
||||||
/// Whether this is a release build or not.
|
/// Whether this is a release build or not.
|
||||||
isRelease: Boolean = false
|
isRelease: Boolean = false
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.0.0#/Config.pkl"
|
import "package://pkg.pkl-lang.org/pkl-pantry/com.circleci.v2@1.1.0#/Config.pkl"
|
||||||
|
|
||||||
name: String = command
|
name: String = command
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
name: main
|
name: main
|
||||||
title: Main Project
|
title: Main Project
|
||||||
version: 0.25.2
|
version: 0.25.3
|
||||||
prerelease: false
|
prerelease: false
|
||||||
nav:
|
nav:
|
||||||
- nav.adoc
|
- nav.adoc
|
||||||
|
|||||||
@@ -4,3 +4,6 @@
|
|||||||
* xref:kotlin-binding:index.adoc[Kotlin]
|
* xref:kotlin-binding:index.adoc[Kotlin]
|
||||||
* xref:swift:ROOT:index.adoc[Swift]
|
* xref:swift:ROOT:index.adoc[Swift]
|
||||||
* xref:go:ROOT:index.adoc[Go]
|
* xref:go:ROOT:index.adoc[Go]
|
||||||
|
* xref:bindings-specification:index.adoc[Specification]
|
||||||
|
** xref:bindings-specification:message-passing-api.adoc[Message Passing API]
|
||||||
|
** xref:bindings-specification:binary-encoding.adoc[Pkl Binary Encoding]
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// the following attributes must be updated immediately before a release
|
// 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 corresponding to current git commit without -dev suffix or git hash
|
||||||
:pkl-version-no-suffix: 0.25.2
|
:pkl-version-no-suffix: 0.25.3
|
||||||
// tells whether pkl version corresponding to current git commit
|
// tells whether pkl version corresponding to current git commit
|
||||||
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
||||||
:is-release-version: ''
|
:is-release-version: ''
|
||||||
@@ -66,3 +66,76 @@ endif::[]
|
|||||||
:uri-config-java-example: {uri-pkl-examples-tree}/config-java
|
:uri-config-java-example: {uri-pkl-examples-tree}/config-java
|
||||||
:uri-config-kotlin-example: {uri-pkl-examples-tree}/config-kotlin
|
:uri-config-kotlin-example: {uri-pkl-examples-tree}/config-kotlin
|
||||||
:uri-pkldoc-example: {uri-pkl-examples-tree}/pkldoc
|
:uri-pkldoc-example: {uri-pkl-examples-tree}/pkldoc
|
||||||
|
|
||||||
|
:uri-stdlib-baseModule: {uri-pkl-stdlib-docs}/base
|
||||||
|
:uri-stdlib-jsonnetModule: {uri-pkl-stdlib-docs}/jsonnet
|
||||||
|
:uri-stdlib-reflectModule: {uri-pkl-stdlib-docs}/reflect
|
||||||
|
:uri-stdlib-xmlModule: {uri-pkl-stdlib-docs}/xml
|
||||||
|
:uri-stdlib-protobufModule: {uri-pkl-stdlib-docs}/protobuf
|
||||||
|
:uri-stdlib-Boolean: {uri-stdlib-baseModule}/Boolean
|
||||||
|
:uri-stdlib-xor: {uri-stdlib-baseModule}/Boolean#xor()
|
||||||
|
:uri-stdlib-implies: {uri-stdlib-baseModule}/Boolean#implies()
|
||||||
|
:uri-stdlib-Any: {uri-stdlib-baseModule}/Any
|
||||||
|
:uri-stdlib-String: {uri-stdlib-baseModule}/String
|
||||||
|
:uri-stdlib-Int: {uri-stdlib-baseModule}/Int
|
||||||
|
:uri-stdlib-Float: {uri-stdlib-baseModule}/Float
|
||||||
|
:uri-stdlib-Number: {uri-stdlib-baseModule}/Number
|
||||||
|
:uri-stdlib-NaN: {uri-stdlib-baseModule}/#NaN
|
||||||
|
:uri-stdlib-Infinity: {uri-stdlib-baseModule}/#Infinity
|
||||||
|
:uri-stdlib-isBetween: {uri-stdlib-baseModule}/Number#isBetween
|
||||||
|
:uri-stdlib-isFinite: {uri-stdlib-baseModule}/Number#isFinite
|
||||||
|
:uri-stdlib-Int8: {uri-stdlib-baseModule}/#Int8
|
||||||
|
:uri-stdlib-Int16: {uri-stdlib-baseModule}/#Int16
|
||||||
|
:uri-stdlib-Int32: {uri-stdlib-baseModule}/#Int32
|
||||||
|
:uri-stdlib-UInt8: {uri-stdlib-baseModule}/#UInt8
|
||||||
|
:uri-stdlib-UInt16: {uri-stdlib-baseModule}/#UInt16
|
||||||
|
:uri-stdlib-UInt32: {uri-stdlib-baseModule}/#UInt32
|
||||||
|
:uri-stdlib-UInt: {uri-stdlib-baseModule}/#UInt
|
||||||
|
:uri-stdlib-Uri: {uri-stdlib-baseModule}/#Uri
|
||||||
|
:uri-stdlib-matches: {uri-stdlib-baseModule}/String#matches()
|
||||||
|
:uri-stdlib-Null: {uri-stdlib-baseModule}/Null
|
||||||
|
:uri-stdlib-ifNonNull: {uri-stdlib-baseModule}/Null#ifNonNull()
|
||||||
|
:uri-stdlib-List: {uri-stdlib-baseModule}/List
|
||||||
|
:uri-stdlib-Set: {uri-stdlib-baseModule}/Set
|
||||||
|
:uri-stdlib-Map: {uri-stdlib-baseModule}/Map
|
||||||
|
:uri-stdlib-Listing: {uri-stdlib-baseModule}/Listing
|
||||||
|
:uri-stdlib-Listing-default: {uri-stdlib-baseModule}/Listing#default
|
||||||
|
:uri-stdlib-Listing-isDistinct: {uri-stdlib-baseModule}/Listing#isDistinct
|
||||||
|
:uri-stdlib-Listing-isDistinctBy: {uri-stdlib-baseModule}/Listing#isDistinctBy()
|
||||||
|
:uri-stdlib-Mapping: {uri-stdlib-baseModule}/Mapping
|
||||||
|
:uri-stdlib-Mapping-default: {uri-stdlib-baseModule}/Mapping#default
|
||||||
|
:uri-stdlib-Duration: {uri-stdlib-baseModule}/Duration
|
||||||
|
:uri-stdlib-Duration-value: {uri-stdlib-baseModule}/Duration#value
|
||||||
|
:uri-stdlib-Duration-unit: {uri-stdlib-baseModule}/Duration#unit
|
||||||
|
:uri-stdlib-DurationUnit: {uri-stdlib-baseModule}/#DurationUnit
|
||||||
|
:uri-stdlib-DataSize: {uri-stdlib-baseModule}/DataSize
|
||||||
|
:uri-stdlib-DataSize-value: {uri-stdlib-baseModule}/DataSize#value
|
||||||
|
:uri-stdlib-DataSize-unit: {uri-stdlib-baseModule}/DataSize#unit
|
||||||
|
:uri-stdlib-DataSizeUnit: {uri-stdlib-baseModule}/#DataSizeUnit
|
||||||
|
:uri-stdlib-Dynamic: {uri-stdlib-baseModule}/Dynamic
|
||||||
|
:uri-stdlib-Dynamic-toTyped: {uri-stdlib-baseModule}/Dynamic#toTyped()
|
||||||
|
:uri-stdlib-Typed: {uri-stdlib-baseModule}/Typed
|
||||||
|
:uri-stdlib-Regex: {uri-stdlib-baseModule}/Regex
|
||||||
|
:uri-stdlib-Regex-method: {uri-stdlib-baseModule}/#Regex()
|
||||||
|
:uri-stdlib-Regex-match: {uri-stdlib-baseModule}/Regex#match
|
||||||
|
:uri-stdlib-RegexMatch: {uri-stdlib-baseModule}/RegexMatch
|
||||||
|
:uri-stdlib-Pair: {uri-stdlib-baseModule}/Pair
|
||||||
|
:uri-stdlib-IntSeq: {uri-stdlib-baseModule}/IntSeq
|
||||||
|
:uri-stdlib-Class: {uri-stdlib-baseModule}/Class
|
||||||
|
:uri-stdlib-TypeAlias: {uri-stdlib-baseModule}/TypeAlias
|
||||||
|
:uri-stdlib-Deprecated: {uri-stdlib-baseModule}/Deprecated
|
||||||
|
:uri-stdlib-ValueRenderer: {uri-stdlib-baseModule}/ValueRenderer
|
||||||
|
:uri-stdlib-PcfRenderer-converters: {uri-stdlib-baseModule}/PcfRenderer#converters
|
||||||
|
:uri-stdlib-Function: {uri-stdlib-baseModule}/Function
|
||||||
|
:uri-stdlib-Function0: {uri-stdlib-baseModule}/Function0
|
||||||
|
:uri-stdlib-Function1: {uri-stdlib-baseModule}/Function1
|
||||||
|
:uri-stdlib-Function1-apply: {uri-stdlib-baseModule}/Function1#apply()
|
||||||
|
:uri-stdlib-Function2: {uri-stdlib-baseModule}/Function2
|
||||||
|
:uri-stdlib-Function3: {uri-stdlib-baseModule}/Function3
|
||||||
|
:uri-stdlib-Function4: {uri-stdlib-baseModule}/Function4
|
||||||
|
:uri-stdlib-Function5: {uri-stdlib-baseModule}/Function5
|
||||||
|
:uri-stdlib-Resource: {uri-stdlib-baseModule}/Resource
|
||||||
|
:uri-stdlib-outputFiles: {uri-stdlib-baseModule}/ModuleOutput#files
|
||||||
|
|
||||||
|
:uri-messagepack: https://msgpack.org/index.html
|
||||||
|
:uri-messagepack-spec: https://github.com/msgpack/msgpack/blob/master/spec.md
|
||||||
|
|||||||
@@ -0,0 +1,197 @@
|
|||||||
|
= Pkl Binary Encoding
|
||||||
|
include::ROOT:partial$component-attributes.adoc[]
|
||||||
|
include::partial$component-attributes.adoc[]
|
||||||
|
|
||||||
|
Pkl values can be encoded into a binary format.
|
||||||
|
This format is used for Pkl's non-JVM language bindings, for example, for its Go and Swift bindings.
|
||||||
|
|
||||||
|
The binary format is uses link:{uri-messagepack}[MessagePack] encoding.
|
||||||
|
|
||||||
|
== Primitives
|
||||||
|
|
||||||
|
All Pkl primitives turn into their respective MessagePack primitive.
|
||||||
|
|
||||||
|
|===
|
||||||
|
|Pkl Type|MessagePack format
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Int}[Int]
|
||||||
|
|link:{uri-messagepack-int}[int]
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Float}[Float]
|
||||||
|
|link:{uri-messagepack-float}[float]
|
||||||
|
|
||||||
|
|link:{uri-stdlib-String}[String]
|
||||||
|
|link:{uri-messagepack-str}[string]
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Boolean}[Boolean]
|
||||||
|
|link:{uri-messagepack-bool}[bool]
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Null}[Null]
|
||||||
|
|link:{uri-messagepack-nil}[nil]
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE: Pkl integers are encoded into the smallest int type that the number will fit into.
|
||||||
|
For example, value `8` gets encoded as MessagePack `int8` format.
|
||||||
|
|
||||||
|
== Non-primitives
|
||||||
|
|
||||||
|
All non-primitive values are encoded as MessagePack arrays.
|
||||||
|
The first slot of the array designates the value's type. The remaining slots have fixed meanings depending on the type.
|
||||||
|
|
||||||
|
The array's length is the number of slots that are filled. For example, xref:{uri-stdlib-List}[List] is encoded as an MessagePack array with two elements.
|
||||||
|
|
||||||
|
|===
|
||||||
|
|Pkl type |Slot 1 2+|Slot 2 2+|Slot 3 2+|Slot 4
|
||||||
|
|
||||||
|
||code |type |description |type |description |type |description
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Typed}[Typed], link:{uri-stdlib-Dynamic}[Dynamic]
|
||||||
|
|`0x1`
|
||||||
|
|link:{uri-messagepack-str}[str]
|
||||||
|
|Fully qualified class name
|
||||||
|
|link:{uri-messagepack-str}[str]
|
||||||
|
|Enclosing module URI
|
||||||
|
|link:{uri-messagepack-array}[array]
|
||||||
|
|Array of <<object-members,object members>>
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Map}[Map]
|
||||||
|
|`0x2`
|
||||||
|
|link:{uri-messagepack-map}[map]
|
||||||
|
|Map of `<value>` to `<value>`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Mapping}[Mapping]
|
||||||
|
|`0x3`
|
||||||
|
|link:{uri-messagepack-map}[map]
|
||||||
|
|Map of `<value>` to `<value>`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-List}[List]
|
||||||
|
|`0x4`
|
||||||
|
|link:{uri-messagepack-array}[array]
|
||||||
|
|Array of `<value>`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Listing}[Listing]
|
||||||
|
|`0x5`
|
||||||
|
|link:{uri-messagepack-array}[array]
|
||||||
|
|Array of `<value>`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Set}[Set]
|
||||||
|
|`0x6`
|
||||||
|
|link:{uri-messagepack-array}[array]
|
||||||
|
|Array of `<value>`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Duration}[Duration]
|
||||||
|
|`0x7`
|
||||||
|
|{uri-messagepack-float}[float64]
|
||||||
|
|Duration value
|
||||||
|
|link:{uri-messagepack-str}[str]
|
||||||
|
|link:{uri-stdlib-DurationUnit}[Duration unit] (`"ns"`, `"ms"`, etc.)
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-DataSize}[DataSize]
|
||||||
|
|`0x8`
|
||||||
|
|link:{uri-messagepack-float}[float64]
|
||||||
|
|Value (float64)
|
||||||
|
|link:{uri-messagepack-str}[str]
|
||||||
|
|link:{uri-stdlib-DataSizeUnit}[DataSize unit] (`"b"`, `"kb"`, etc.)
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Pair}[Pair]
|
||||||
|
|`0x9`
|
||||||
|
|`<value>`
|
||||||
|
|First value
|
||||||
|
|`<value>`
|
||||||
|
|Second value
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-IntSeq}[IntSeq]
|
||||||
|
|`0xA`
|
||||||
|
|link:{uri-messagepack-int}[int]
|
||||||
|
|Start
|
||||||
|
|link:{uri-messagepack-int}[int]
|
||||||
|
|End
|
||||||
|
|link:{uri-messagepack-int}[int]
|
||||||
|
|Step
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Regex}[Regex]
|
||||||
|
|`0xB`
|
||||||
|
|link:{uri-messagepack-str}[str]
|
||||||
|
|Regex string representation
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-Class}[Class]
|
||||||
|
|`0xC`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|link:{uri-stdlib-TypeAlias}[TypeAlias]
|
||||||
|
|`0xD`
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[object-members]]
|
||||||
|
== Object Members
|
||||||
|
|
||||||
|
Like non-primitive values, object members are encoded as MessagePack arrays, where the first slot designates the value's type.
|
||||||
|
|
||||||
|
|===
|
||||||
|
|Member type |Slot 1 2+|Slot 2 2+|Slot 3
|
||||||
|
|
||||||
|
| |code |type |description |type |description
|
||||||
|
|
||||||
|
|Property
|
||||||
|
|`0x10`
|
||||||
|
|link:{uri-messagepack-str}[str]
|
||||||
|
|key
|
||||||
|
|`<value>`
|
||||||
|
|property value
|
||||||
|
|
||||||
|
|Entry
|
||||||
|
|`0x11`
|
||||||
|
|`<value>`
|
||||||
|
|entry key
|
||||||
|
|`<value>`
|
||||||
|
|entry value
|
||||||
|
|
||||||
|
|Element
|
||||||
|
|`0x12`
|
||||||
|
|link:{uri-messagepack-int}[int]
|
||||||
|
|index
|
||||||
|
|`<value>`
|
||||||
|
|element value
|
||||||
|
|===
|
||||||
|
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
= Language Binding Specification
|
||||||
|
|
||||||
|
:uri-pkl-go-github: https://github.com/apple/pkl-go
|
||||||
|
:uri-pkl-swift-github: https://github.com/apple/pkl-swift
|
||||||
|
|
||||||
|
Pkl can be embedded within any host application.
|
||||||
|
The host application has access to low level controls.
|
||||||
|
It is able to manage the lifecycle of evaluators, as well as provide custom modules and resources to Pkl.
|
||||||
|
|
||||||
|
Currently, Pkl must be embedded as a child process, by shelling out to the CLI using the xref:pkl-cli:index.adoc#command-server[`pkl server`] command. In the future, a C library will also be provided.
|
||||||
|
|
||||||
|
When embedded, communication between a host application and Pkl happens via message passing.
|
||||||
|
The message passing specification can be found in xref:message-passing-api.adoc[].
|
||||||
|
|
||||||
|
For examples of language bindings in practice, review the xref:{uri-pkl-go-github}[pkl-go], or the xref:{uri-pkl-swift-github}[pkl-swift] codebases.
|
||||||
|
|
||||||
|
NOTE: Pkl's Java and Kotlin libraries binds to Pkl directly, and do not use message passing.
|
||||||
|
|
||||||
|
== Features of a language binding
|
||||||
|
|
||||||
|
A language binding for Pkl should generally have the following components:
|
||||||
|
|
||||||
|
. A client that spawns `pkl server`, and talks to it using message passing.
|
||||||
|
. A deserializer that turns xref:binary-encoding.adoc[pkl binary encoding] into a structure in the host language.
|
||||||
|
. A code generator that transforms Pkl schemas into schemas written in the host language.
|
||||||
|
The code generator is mostly written in Pkl, with a lightweight executable that acts as the glue layer.
|
||||||
|
For examples of code generators, consult link:{uri-pkl-go-github}/tree/main/codegen[pkl-go] and link:{uri-pkl-swift-github}/tree/main/codegen[pkl-swift].
|
||||||
|
|
||||||
|
== Sample flow
|
||||||
|
|
||||||
|
Here is a sample flow for evaluating a module with the following contents:
|
||||||
|
|
||||||
|
.\file:///path/to/myModule.pkl
|
||||||
|
[source,{pkl}]
|
||||||
|
----
|
||||||
|
module MyModule
|
||||||
|
|
||||||
|
theModules = import*("customfs:/*.pkl")
|
||||||
|
----
|
||||||
|
|
||||||
|
. Client sends xref:message-passing-api.adoc#create-evaluator-request[Create Evaluator Request], including `customfs` as a custom module reader.
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x20,
|
||||||
|
{
|
||||||
|
"requestId": 135,
|
||||||
|
"allowedModules": ["pkl:", "repl:", "file:", "customfs:"],
|
||||||
|
"clientModuleReaders": [
|
||||||
|
{
|
||||||
|
"scheme": "customfs",
|
||||||
|
"hasHierarchicalUris": true,
|
||||||
|
"isGlobbable": true,
|
||||||
|
"isLocal": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Server sends xref:message-passing-api.adoc#create-evaluator-response[Create Evaluator Response], with an evaluator id.
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x21,
|
||||||
|
{
|
||||||
|
"requestId": 135,
|
||||||
|
"evaluatorId": -135901
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Client sends xref:message-passing-api.adoc#evaluate-request[Evaluate Request], providing the module's URI.
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x23,
|
||||||
|
{
|
||||||
|
"requestId": 9805131,
|
||||||
|
"evaluatorId": -13901,
|
||||||
|
"moduleUri": "file:///path/to/myModule.pkl"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. During evaluation, server evaluates `import*("customfs:/*.pkl")`, and sends xref:message-passing-api.adoc#list-modules-request[List Modules Request].
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x2c,
|
||||||
|
{
|
||||||
|
"requestId": -6478924,
|
||||||
|
"evaluatorId": -13901,
|
||||||
|
"uri": "customfs:/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Client responds with xref:message-passing-api.adoc#list-modules-response[List Modules Response].
|
||||||
|
In our pretend scenario, there is only one file; `foo.pkl`.
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x2d,
|
||||||
|
{
|
||||||
|
"requestId": -6478924,
|
||||||
|
"evaluatorId": -13901,
|
||||||
|
"pathElements": [
|
||||||
|
{
|
||||||
|
"name": "foo.pkl",
|
||||||
|
"isDirectory": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Server sends xref:message-passing-api.adoc#read-module-request[Read Module Request] to read `foo.pkl`.
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x28,
|
||||||
|
{
|
||||||
|
"requestId": 36408291,
|
||||||
|
"evaluatorId": -13901,
|
||||||
|
"uri": "customfs:/foo.pkl"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Client responds with the module's contents
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x29,
|
||||||
|
{
|
||||||
|
"requestId": 36408291,
|
||||||
|
"evaluatorId": -13901,
|
||||||
|
"contents": "foo = 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Server finishes evaluation, and responds with the xref:message-passing-api.adoc#evaluate-response[Evaluate Response].
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x24,
|
||||||
|
{
|
||||||
|
"requestId": 9805131,
|
||||||
|
"evaluatorId": -13901,
|
||||||
|
"result": <pkl binary value>
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
. Client sends xref:message-passing-api.adoc#close-evaluator[Close Evaluator].
|
||||||
|
+
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x22,
|
||||||
|
{
|
||||||
|
"evaluatorId": -13901
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
|
||||||
|
== Debug logs
|
||||||
|
|
||||||
|
Set the env var `PKL_DEBUG=1` to enable more verbose logging from Pkl.
|
||||||
|
It is recommended that clients also use this environment variable to enable debug logs of their own.
|
||||||
|
|
||||||
@@ -0,0 +1,531 @@
|
|||||||
|
= Message Passing API
|
||||||
|
|
||||||
|
include::ROOT:partial$component-attributes.adoc[]
|
||||||
|
include::partial$component-attributes.adoc[]
|
||||||
|
|
||||||
|
All messages are encoded in link:{uri-messagepack}[MessagePack], as an array with two elements.
|
||||||
|
|
||||||
|
The first element of the array is a code that designates the message's type, encoded as an int.
|
||||||
|
The second element of the array is the message body, encoded as a map.
|
||||||
|
|
||||||
|
Messages are passed between the _client_ and the _server_.
|
||||||
|
The _client_ is the host language (for example, the Swift application when using pkl-swift).
|
||||||
|
The _server_ is the entity that provides controls for interacting with Pkl.
|
||||||
|
|
||||||
|
For example, in JSON representation:
|
||||||
|
|
||||||
|
[source,json]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
1, // <1>
|
||||||
|
{ "someKey": "someValue" } // <2>
|
||||||
|
]
|
||||||
|
----
|
||||||
|
<1> Code indicating message type
|
||||||
|
<2> Message body
|
||||||
|
|
||||||
|
== Message types
|
||||||
|
|
||||||
|
[[client-message]]
|
||||||
|
=== Client Message
|
||||||
|
A message passed from the client to the server.
|
||||||
|
|
||||||
|
[[server-message]]
|
||||||
|
=== Server Message
|
||||||
|
A message passed from the server to the client.
|
||||||
|
|
||||||
|
[[request-message]]
|
||||||
|
=== Request Message
|
||||||
|
A message sent with a `requestId` value.
|
||||||
|
The `requestId` should be a unique number at the time of message send.
|
||||||
|
The other side is expected to respond with a <<response-message>> with the same `requestId`.
|
||||||
|
|
||||||
|
[[response-message]]
|
||||||
|
=== Response Message
|
||||||
|
A message that is the response to a <<request-message>>.
|
||||||
|
It contains the same `requestId` of the request message.
|
||||||
|
|
||||||
|
[[one-way-message]]
|
||||||
|
=== One Way Message
|
||||||
|
|
||||||
|
A fire-and-forget message where no response is expected.
|
||||||
|
|
||||||
|
== Messages
|
||||||
|
|
||||||
|
All messages have their schema described in Pkl.
|
||||||
|
A nullable type means that the property should be omitted (as opposed to the property's value being `nil`).
|
||||||
|
|
||||||
|
[[create-evaluator-request]]
|
||||||
|
=== Create Evaluator Request
|
||||||
|
|
||||||
|
Code: `0x20` +
|
||||||
|
Type: <<client-message,Client>> <<request-message,Request>>
|
||||||
|
|
||||||
|
Create an evaluator with the provided evaluator settings.
|
||||||
|
Upon creating the evaluator, the server sends back a <<create-evaluator-response>> message.
|
||||||
|
|
||||||
|
Schema:
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// Regex patterns to determine which modules are allowed for import.
|
||||||
|
///
|
||||||
|
/// API version of the CLI's `--allowed-modules` flag
|
||||||
|
allowedModules: Listing<String>?
|
||||||
|
|
||||||
|
/// Regex patterns to dettermine which resources are allowed to be read.
|
||||||
|
///
|
||||||
|
/// API version of the CLI's `--allowed-resources` flag
|
||||||
|
allowedResources: Listing<String>?
|
||||||
|
|
||||||
|
/// Register client-side module readers.
|
||||||
|
clientModuleReaders: Listing<ClientModuleReader>?
|
||||||
|
|
||||||
|
/// Register client-side resource readers.
|
||||||
|
clientResourceReaders: Listing<ClientResourceReader>?
|
||||||
|
|
||||||
|
/// Directories, ZIP archives, or JAR archives
|
||||||
|
/// to search when resolving `modulepath:` URIs.
|
||||||
|
///
|
||||||
|
/// API version of the CLI's `--module-path` flag.
|
||||||
|
modulePaths: Listing<String>?
|
||||||
|
|
||||||
|
/// Environment variable to set.
|
||||||
|
///
|
||||||
|
/// API version of the CLI's `--env-var` flag.
|
||||||
|
env: Mapping<String, String>?
|
||||||
|
|
||||||
|
/// External properties to set.
|
||||||
|
///
|
||||||
|
/// API version of the CLI's `--properties` flag.
|
||||||
|
properties: Mapping<String, String>?
|
||||||
|
|
||||||
|
/// Duration, in seconds, after which evaluation of a source module will be timed out.
|
||||||
|
///
|
||||||
|
/// API version of the CLI's `--timeout` flag.
|
||||||
|
timeoutSeconds: Int?
|
||||||
|
|
||||||
|
/// Restricts access to file-based modules and resources to those located under the root directory.
|
||||||
|
rootDir: String?
|
||||||
|
|
||||||
|
/// The cache directory for storing packages.
|
||||||
|
cacheDir: String?
|
||||||
|
|
||||||
|
/// The format to generate.
|
||||||
|
///
|
||||||
|
/// This sets the `pkl.outputFormat` external property.
|
||||||
|
outputFormat: String?
|
||||||
|
|
||||||
|
/// The project dependency settings.
|
||||||
|
project: Project?
|
||||||
|
|
||||||
|
class ClientResourceReader {
|
||||||
|
/// The URI scheme this reader is responsible for reading.
|
||||||
|
scheme: String
|
||||||
|
|
||||||
|
/// Tells whether the path part of ths URI has a
|
||||||
|
/// [hier-part](https://datatracker.ietf.org/doc/html/rfc3986#section-3).
|
||||||
|
///
|
||||||
|
/// An example of a hierarchical URI is `file:///path/to/my/file`, where
|
||||||
|
/// `/path/to/my/file` designates a nested path through the `/` character.
|
||||||
|
///
|
||||||
|
/// An example of a non-hierarchical URI is `pkl.base`, where the `base` does not denote
|
||||||
|
/// any form of hierarchy.
|
||||||
|
hasHierarchicalUris: Boolean
|
||||||
|
|
||||||
|
/// Tells whether this reader supports globbing.
|
||||||
|
isGlobbable: Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
class ClientModuleReader {
|
||||||
|
/// The URI scheme this reader is responsible for reading.
|
||||||
|
scheme: String
|
||||||
|
|
||||||
|
/// Tells whether the path part of ths URI has a
|
||||||
|
/// [hier-part](https://datatracker.ietf.org/doc/html/rfc3986#section-3).
|
||||||
|
///
|
||||||
|
/// An example of a hierarchical URI is `file:///path/to/my/file`, where
|
||||||
|
/// `/path/to/my/file` designates a nested path through the `/` character.
|
||||||
|
///
|
||||||
|
/// An example of a non-hierarchical URI is `pkl.base`, where the `base` does not denote
|
||||||
|
/// any form of hierarchy.
|
||||||
|
hasHierarchicalUris: Boolean
|
||||||
|
|
||||||
|
/// Tells whether this reader supports globbing.
|
||||||
|
isGlobbable: Boolean
|
||||||
|
|
||||||
|
/// Tells whether the module is local to the system.
|
||||||
|
///
|
||||||
|
/// A local resource that [hasHierarchicalUris] supports triple-dot imports.
|
||||||
|
isLocal: Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
class Project {
|
||||||
|
type: "local"
|
||||||
|
|
||||||
|
/// The canonical URI of this project's package
|
||||||
|
packageUri: String?
|
||||||
|
|
||||||
|
/// The URI pointing to the location of the project file.
|
||||||
|
projectFileUri: String
|
||||||
|
|
||||||
|
/// The dependencies of this project.
|
||||||
|
dependencies: Mapping<String, Project|RemoteDependency>
|
||||||
|
}
|
||||||
|
|
||||||
|
class RemoteDependency {
|
||||||
|
type: "remote"
|
||||||
|
|
||||||
|
/// The canonical URI of this dependency
|
||||||
|
packageUri: String?
|
||||||
|
|
||||||
|
/// The checksums of this remote dependency
|
||||||
|
checksums: Checksums?
|
||||||
|
}
|
||||||
|
|
||||||
|
class Checksums {
|
||||||
|
/// The sha-256 checksum of this dependency's metadata.
|
||||||
|
sha256: String
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
Example:
|
||||||
|
[source,json5]
|
||||||
|
----
|
||||||
|
[
|
||||||
|
0x20,
|
||||||
|
{
|
||||||
|
"requestId": 193501,
|
||||||
|
"allowedModules": ["pkl:", "repl:"],
|
||||||
|
"allowedResources": ["file:", "package:", "projectpackage:"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
----
|
||||||
|
|
||||||
|
[[create-evaluator-response]]
|
||||||
|
=== Create Evaluator Response
|
||||||
|
|
||||||
|
Code: `0x21` +
|
||||||
|
Type: <<server-message,Server>> <<response-message,Response>>
|
||||||
|
|
||||||
|
The response for a <<create-evaluator-request>>.
|
||||||
|
If the evaluator was created successfully, `evaluatorId` is set. Otherwise, `error` is set to the resulting error.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying the created evaluator.
|
||||||
|
evaluatorId: Int?
|
||||||
|
|
||||||
|
/// A message detailing why the evaluator was not created.
|
||||||
|
error: String?
|
||||||
|
----
|
||||||
|
|
||||||
|
[[close-evaluator]]
|
||||||
|
=== Close Evaluator
|
||||||
|
|
||||||
|
Code: `0x22` +
|
||||||
|
Type: <<client-message,Client>> <<one-way-message,One Way>>
|
||||||
|
|
||||||
|
Tells the Pkl server to close an evaluator, releasing any resources it may be holding.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
----
|
||||||
|
|
||||||
|
[[evaluate-request]]
|
||||||
|
=== Evaluate Request
|
||||||
|
|
||||||
|
Code: `0x23` +
|
||||||
|
Type: <<client-message,Client>> <<request-message,Request>>
|
||||||
|
|
||||||
|
Evaluate a module.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The absolute URI of the module to be evaluated.
|
||||||
|
moduleUri: String
|
||||||
|
|
||||||
|
/// The module's contents.
|
||||||
|
///
|
||||||
|
/// If [null], Pkl will load the module at runtime.
|
||||||
|
moduleText: String?
|
||||||
|
|
||||||
|
/// The Pkl expression to be evaluated within the module.
|
||||||
|
///
|
||||||
|
/// If [null], evaluates the whole module.
|
||||||
|
expr: String?
|
||||||
|
----
|
||||||
|
|
||||||
|
[[evaluate-response]]
|
||||||
|
=== Evaluate Response
|
||||||
|
|
||||||
|
Code: `0x24` +
|
||||||
|
Type: <<server-message,Server>> <<response-message,Response>>
|
||||||
|
|
||||||
|
The server's response to <<evaluate-request>>.
|
||||||
|
If the evaluation is successful, the response is the Pkl value encoded in xref:binary-encoding.adoc[binary encoding].
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// The requestId of the Evaluate request
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The evaluation contents, if successful.
|
||||||
|
result: Binary? // <1>
|
||||||
|
|
||||||
|
/// A message detailing why evaluation failed.
|
||||||
|
error: String?
|
||||||
|
|
||||||
|
typealias Binary = Any // <1>
|
||||||
|
----
|
||||||
|
<1> xref:binary-encoding.adoc[Pkl Binary Encoding] in link:{uri-messagepack-bin}[bin format] (not expressable in Pkl)
|
||||||
|
|
||||||
|
[[log]]
|
||||||
|
=== Log
|
||||||
|
|
||||||
|
Code: `0x25` +
|
||||||
|
Type: <<server-message,Server>> <<one-way-message,One Way>>
|
||||||
|
|
||||||
|
Tells the client to emit a log message, during the execution of a Pkl program.
|
||||||
|
A log can occur through a xref:language-reference:index.adoc#debugging[trace()] expression, or through a warning (for example, when encountering a link:{uri-stdlib-Deprecated}[Deprecated] value.)
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// A number identifying the log level.
|
||||||
|
///
|
||||||
|
/// - 0: trace
|
||||||
|
/// - 1: warn
|
||||||
|
level: Int(this == 0 || this == 1)
|
||||||
|
|
||||||
|
/// The message to be logged
|
||||||
|
message: String
|
||||||
|
|
||||||
|
/// A string representing the source location within Pkl code producing this log output.
|
||||||
|
frameUri: String
|
||||||
|
----
|
||||||
|
|
||||||
|
[[read-resource-request]]
|
||||||
|
=== Read Resource Request
|
||||||
|
|
||||||
|
Code: `0x26` +
|
||||||
|
Type: <<server-message,Server>> <<request-message,Request>>
|
||||||
|
|
||||||
|
Read a resource at the given URI.
|
||||||
|
This message occurs when a read expression (`read`/`read?`/`read*`) is encountered within a program, and its scheme matches a client resource reader.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The URI of the resource.
|
||||||
|
uri: String
|
||||||
|
----
|
||||||
|
|
||||||
|
[[read-resource-response]]
|
||||||
|
=== Read Resource Response
|
||||||
|
|
||||||
|
Code: `0x27` +
|
||||||
|
Type: <<client-message,Client>> <<response-message,Response>>
|
||||||
|
|
||||||
|
The response to <<read-resource-request>>.
|
||||||
|
If successful, `contents` is set.
|
||||||
|
Otherwise, `error` is set.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The contents of the resource.
|
||||||
|
contents: Binary? // <1>
|
||||||
|
|
||||||
|
/// The description of the error that occured when reading this resource.
|
||||||
|
error: String?
|
||||||
|
|
||||||
|
typealias Binary = Any // <1>
|
||||||
|
----
|
||||||
|
<1> MessagePack's link:https://github.com/msgpack/msgpack/blob/master/spec.md#bin-format-family[bin format family] (not expressable in Pkl)
|
||||||
|
|
||||||
|
[[read-module-request]]
|
||||||
|
=== Read Module Request
|
||||||
|
|
||||||
|
Code: `0x28` +
|
||||||
|
Type: <<server-message,Server>> <<request-message,Request>>
|
||||||
|
|
||||||
|
Read a module at the given URI.
|
||||||
|
This message occurs during the evaluation of an import statement or expression (`import`/`import*`), when a scheme matches a client module reader.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The URI of the module.
|
||||||
|
uri: String
|
||||||
|
----
|
||||||
|
|
||||||
|
[[read-module-response]]
|
||||||
|
=== Read Module Response
|
||||||
|
|
||||||
|
Code: `0x29` +
|
||||||
|
Type: <<client-message,Client>> <<response-message,Response>>
|
||||||
|
|
||||||
|
The response to <<read-module-request>>.
|
||||||
|
If successful, `contents` is set.
|
||||||
|
Otherwise, `error` is set.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The string contents of the module.
|
||||||
|
contents: String?
|
||||||
|
|
||||||
|
/// The description of the error that occured when reading this resource.
|
||||||
|
error: String?
|
||||||
|
----
|
||||||
|
|
||||||
|
[[list-resources-request]]
|
||||||
|
=== List Resources Request
|
||||||
|
|
||||||
|
Code: `0x2a` +
|
||||||
|
Type: <<server-message,Server>> <<request-message,Request>>
|
||||||
|
|
||||||
|
List resources at the specified base path.
|
||||||
|
This message occurs during the evaluation of a xref:language-reference:index.adoc#globbed-reads[globbed read], when a scheme matches a client resource reader's scheme.
|
||||||
|
|
||||||
|
If the resource reader does not have hierarchical URIs, `dummy` is used as the path, and the response is expected to contain all resource elements for that scheme.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The base URI to list resources.
|
||||||
|
uri: String
|
||||||
|
----
|
||||||
|
|
||||||
|
[[list-resources-response]]
|
||||||
|
=== List Resources Response
|
||||||
|
|
||||||
|
Code: `0x2b` +
|
||||||
|
Type: <<client-message,Client>> <<response-message,Response>>
|
||||||
|
|
||||||
|
The response to <<list-resources-request>>.
|
||||||
|
If successful, `pathElements` is set.
|
||||||
|
Otherwise, `error` is set.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The elements at the provided base path.
|
||||||
|
pathElements: Listing<PathElement>?
|
||||||
|
|
||||||
|
/// The description of the error that occured when listing elements.
|
||||||
|
error: String?
|
||||||
|
|
||||||
|
class PathElement {
|
||||||
|
/// The name of the element at this path
|
||||||
|
name: String
|
||||||
|
|
||||||
|
/// Tells whether the element is a directory.
|
||||||
|
isDirectory: Boolean
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
[[list-modules-request]]
|
||||||
|
=== List Modules Request
|
||||||
|
|
||||||
|
Code: `0x2c` +
|
||||||
|
Type: <<server-message,Server>> <<request-message,Request>>
|
||||||
|
|
||||||
|
List modules at the specified base path.
|
||||||
|
This message occurs during the evaluation of a xref:language-reference:index.adoc#globbed-imports[globbed import], when a scheme matches a client resource reader's scheme.
|
||||||
|
|
||||||
|
If the module reader does not have hierarchical URIs, `dummy` is used as the path, and the response is expected to contain all module elements for that scheme.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The base URI to list modules.
|
||||||
|
uri: String
|
||||||
|
----
|
||||||
|
|
||||||
|
[[list-modules-response]]
|
||||||
|
=== List Modules Response
|
||||||
|
|
||||||
|
Code: `0x2d` +
|
||||||
|
Type: <<client-message,Client>> <<response-message,Response>>
|
||||||
|
|
||||||
|
The response to <<list-modules-request>>.
|
||||||
|
If successful, `pathElements` is set.
|
||||||
|
Otherwise, `error` is set.
|
||||||
|
|
||||||
|
[source,pkl]
|
||||||
|
----
|
||||||
|
/// A number identifying this request.
|
||||||
|
requestId: Int
|
||||||
|
|
||||||
|
/// A number identifying this evaluator.
|
||||||
|
evaluatorId: Int
|
||||||
|
|
||||||
|
/// The elements at the provided base path.
|
||||||
|
pathElements: Listing<PathElement>?
|
||||||
|
|
||||||
|
/// The description of the error that occured when listing elements.
|
||||||
|
error: String?
|
||||||
|
|
||||||
|
class PathElement {
|
||||||
|
/// The name of the element at this path
|
||||||
|
name: String
|
||||||
|
|
||||||
|
/// Tells whether the element is a directory.
|
||||||
|
isDirectory: Boolean
|
||||||
|
}
|
||||||
|
----
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
:uri-github-binary-encoding-snippet-tests: {uri-github-tree}/pkl-server/src/test/files/SnippetTests
|
||||||
|
:uri-messagepack-bool: {uri-messagepack-spec}#bool-format-family
|
||||||
|
:uri-messagepack-int: {uri-messagepack-spec}#int-format-family
|
||||||
|
:uri-messagepack-float: {uri-messagepack-spec}#float-format-family
|
||||||
|
:uri-messagepack-str: {uri-messagepack-spec}#str-format-family
|
||||||
|
:uri-messagepack-bin: {uri-messagepack-spec}#bin-format-family
|
||||||
|
:uri-messagepack-array: {uri-messagepack-spec}#array-format-family
|
||||||
|
:uri-messagepack-map: {uri-messagepack-spec}#map-format-family
|
||||||
|
:uri-messagepack-nil: {uri-messagepack-spec}#nil-format
|
||||||
@@ -13,14 +13,14 @@ Also, Pkl's strong and weak points in comparison to other configuration language
|
|||||||
[[static-config-formats]]
|
[[static-config-formats]]
|
||||||
== Pkl vs. Static Config Formats
|
== Pkl vs. Static Config Formats
|
||||||
|
|
||||||
Static configuration formats such as JSON, YAML, and XML work reasonably well for simple configuration needs.
|
Static configuration formats such as JSON, YAML, TOML, and XML work reasonably well for simple configuration needs.
|
||||||
However, they do have some shortcomings, including:
|
However, they do have some shortcomings, including:
|
||||||
|
|
||||||
. They are not very human-friendly to read and write. (JSON, XML)
|
. They are not very human-friendly to read and write. (JSON, XML)
|
||||||
. They do not provide a way to split a large file into multiple smaller ones. (JSON, YAML)
|
. They do not provide a way to split a large file into multiple smaller ones. (JSON, YAML, TOML)
|
||||||
. They offer no way or very limited ways to abstract over repetitive configuration. (JSON, YAML, XML)
|
. They offer no way or very limited ways to abstract over repetitive configuration. (JSON, YAML, TOML, XML)
|
||||||
. They do not offer standardized or widely available schema validators. (JSON, YAML)
|
. They do not offer standardized or widely available schema validators. (JSON, YAML, TOML)
|
||||||
. They offer little or no schema-aware tooling. (JSON, YAML)
|
. They offer little or no schema-aware tooling. (JSON, YAML, TOML)
|
||||||
|
|
||||||
Pkl addresses these shortcomings as follows:
|
Pkl addresses these shortcomings as follows:
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ At the same time, anyone configuring your application -- whether that's your use
|
|||||||
+
|
+
|
||||||
At the time of writing, Pkl offers configuration libraries for the JVM runtime, Swift, and also for Golang.
|
At the time of writing, Pkl offers configuration libraries for the JVM runtime, Swift, and also for Golang.
|
||||||
+
|
+
|
||||||
We maintian the following libraries:
|
We maintain the following libraries:
|
||||||
+
|
+
|
||||||
* xref:java-binding:pkl-config-java.adoc[pkl-config-java] for Java compatible languages
|
* xref:java-binding:pkl-config-java.adoc[pkl-config-java] for Java compatible languages
|
||||||
* xref:kotlin-binding:pkl-config-kotlin.adoc[pkl-config-kotlin] for the {uri-kotlin-homepage}[Kotlin] language.
|
* xref:kotlin-binding:pkl-config-kotlin.adoc[pkl-config-kotlin] for the {uri-kotlin-homepage}[Kotlin] language.
|
||||||
|
|||||||
@@ -45,11 +45,14 @@ dependencies {
|
|||||||
compile "org.pkl-lang:pkl-codegen-java:{pkl-artifact-version}"
|
compile "org.pkl-lang:pkl-codegen-java:{pkl-artifact-version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "{uri-sonatype}" }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url "{uri-sonatype}" }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Kotlin::
|
Kotlin::
|
||||||
@@ -61,11 +64,14 @@ dependencies {
|
|||||||
compile("org.pkl-lang:pkl-codegen-java:{pkl-artifact-version}")
|
compile("org.pkl-lang:pkl-codegen-java:{pkl-artifact-version}")
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("{uri-sonatype}") }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url = uri("{uri-sonatype}") }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -82,7 +88,7 @@ To use the library in a Maven project, declare the following dependency:
|
|||||||
<artifactId>pkl-codegen-java</artifactId>
|
<artifactId>pkl-codegen-java</artifactId>
|
||||||
<version>{pkl-artifact-version}</version>
|
<version>{pkl-artifact-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>sonatype-s01</id>
|
<id>sonatype-s01</id>
|
||||||
|
|||||||
@@ -40,7 +40,12 @@ dependencies {
|
|||||||
compile "org.pkl-lang:pkl-config-java:{pkl-artifact-version}"
|
compile "org.pkl-lang:pkl-config-java:{pkl-artifact-version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
ifdef::is-release-version[]
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "{uri-sonatype}" }
|
maven { url "{uri-sonatype}" }
|
||||||
}
|
}
|
||||||
@@ -56,11 +61,14 @@ dependencies {
|
|||||||
compile("org.pkl-lang:pkl-config-java:{pkl-artifact-version}")
|
compile("org.pkl-lang:pkl-config-java:{pkl-artifact-version}")
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("{uri-sonatype}") }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url = uri("{uri-sonatype}") }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -79,7 +87,7 @@ To use the library in a Maven project, declare the following dependency:
|
|||||||
<artifactId>pkl-config-java</artifactId>
|
<artifactId>pkl-config-java</artifactId>
|
||||||
<version>{pkl-artifact-version}</version>
|
<version>{pkl-artifact-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>sonatype-s01</id>
|
<id>sonatype-s01</id>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ See xref:pkl-gradle:index.adoc#installation[Installation] in the Gradle plugin c
|
|||||||
=== Java Library
|
=== Java Library
|
||||||
|
|
||||||
The `pkl-codegen-kotlin` library is available {uri-pkl-codegen-kotlin-maven-module}[from Maven Central].
|
The `pkl-codegen-kotlin` library is available {uri-pkl-codegen-kotlin-maven-module}[from Maven Central].
|
||||||
It requires Java 8 or higher and Kotlin 1.3 or higher.
|
It requires Java 11 or higher and Kotlin 1.3 or higher.
|
||||||
|
|
||||||
==== Gradle
|
==== Gradle
|
||||||
|
|
||||||
@@ -36,11 +36,14 @@ dependencies {
|
|||||||
compile "org.pkl-lang:pkl-codegen-kotlin:{pkl-artifact-version}"
|
compile "org.pkl-lang:pkl-codegen-kotlin:{pkl-artifact-version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "{uri-sonatype}" }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url "{uri-sonatype}" }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Kotlin::
|
Kotlin::
|
||||||
@@ -52,11 +55,14 @@ dependencies {
|
|||||||
compile("org.pkl-lang:pkl-codegen-kotlin:{pkl-artifact-version}")
|
compile("org.pkl-lang:pkl-codegen-kotlin:{pkl-artifact-version}")
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("{uri-sonatype}") }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url = uri("{uri-sonatype}") }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
|
|||||||
@@ -29,11 +29,14 @@ dependencies {
|
|||||||
compile "org.pkl-lang:pkl-config-kotlin:{pkl-artifact-version}"
|
compile "org.pkl-lang:pkl-config-kotlin:{pkl-artifact-version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "{uri-sonatype}" }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url "{uri-sonatype}" }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Kotlin::
|
Kotlin::
|
||||||
@@ -45,11 +48,14 @@ dependencies {
|
|||||||
compile("org.pkl-lang:pkl-config-kotlin:{pkl-artifact-version}")
|
compile("org.pkl-lang:pkl-config-kotlin:{pkl-artifact-version}")
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("{uri-sonatype}") }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url = uri("{uri-sonatype}") }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -66,7 +72,7 @@ To use the library in a Maven project, declare the following dependency:
|
|||||||
<artifactId>pkl-config-kotlin</artifactId>
|
<artifactId>pkl-config-kotlin</artifactId>
|
||||||
<version>{pkl-artifact-version}</version>
|
<version>{pkl-artifact-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>sonatype-s01</id>
|
<id>sonatype-s01</id>
|
||||||
|
|||||||
@@ -9,70 +9,6 @@ include::ROOT:partial$component-attributes.adoc[]
|
|||||||
:uri-javadoc-Pattern: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
|
:uri-javadoc-Pattern: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
|
||||||
:uri-github-PklLexer: {uri-github-tree}/pkl-core/src/main/antlr/PklLexer.g4
|
:uri-github-PklLexer: {uri-github-tree}/pkl-core/src/main/antlr/PklLexer.g4
|
||||||
:uri-github-PklParser: {uri-github-tree}/pkl-core/src/main/antlr/PklParser.g4
|
:uri-github-PklParser: {uri-github-tree}/pkl-core/src/main/antlr/PklParser.g4
|
||||||
:uri-stdlib-baseModule: {uri-pkl-stdlib-docs}/base
|
|
||||||
:uri-stdlib-jsonnetModule: {uri-pkl-stdlib-docs}/jsonnet
|
|
||||||
:uri-stdlib-reflectModule: {uri-pkl-stdlib-docs}/reflect
|
|
||||||
:uri-stdlib-xmlModule: {uri-pkl-stdlib-docs}/xml
|
|
||||||
:uri-stdlib-protobufModule: {uri-pkl-stdlib-docs}/protobuf
|
|
||||||
:uri-stdlib-Boolean: {uri-stdlib-baseModule}/Boolean
|
|
||||||
:uri-stdlib-xor: {uri-stdlib-baseModule}/Boolean#xor()
|
|
||||||
:uri-stdlib-implies: {uri-stdlib-baseModule}/Boolean#implies()
|
|
||||||
:uri-stdlib-Any: {uri-stdlib-baseModule}/Any
|
|
||||||
:uri-stdlib-String: {uri-stdlib-baseModule}/String
|
|
||||||
:uri-stdlib-Int: {uri-stdlib-baseModule}/Int
|
|
||||||
:uri-stdlib-Float: {uri-stdlib-baseModule}/Float
|
|
||||||
:uri-stdlib-Number: {uri-stdlib-baseModule}/Number
|
|
||||||
:uri-stdlib-NaN: {uri-stdlib-baseModule}/#NaN
|
|
||||||
:uri-stdlib-Infinity: {uri-stdlib-baseModule}/#Infinity
|
|
||||||
:uri-stdlib-isBetween: {uri-stdlib-baseModule}/Number#isBetween
|
|
||||||
:uri-stdlib-isFinite: {uri-stdlib-baseModule}/Number#isFinite
|
|
||||||
:uri-stdlib-Int8: {uri-stdlib-baseModule}/#Int8
|
|
||||||
:uri-stdlib-Int16: {uri-stdlib-baseModule}/#Int16
|
|
||||||
:uri-stdlib-Int32: {uri-stdlib-baseModule}/#Int32
|
|
||||||
:uri-stdlib-UInt8: {uri-stdlib-baseModule}/#UInt8
|
|
||||||
:uri-stdlib-UInt16: {uri-stdlib-baseModule}/#UInt16
|
|
||||||
:uri-stdlib-UInt32: {uri-stdlib-baseModule}/#UInt32
|
|
||||||
:uri-stdlib-UInt: {uri-stdlib-baseModule}/#UInt
|
|
||||||
:uri-stdlib-Uri: {uri-stdlib-baseModule}/#Uri
|
|
||||||
:uri-stdlib-matches: {uri-stdlib-baseModule}/String#matches()
|
|
||||||
:uri-stdlib-Null: {uri-stdlib-baseModule}/Null
|
|
||||||
:uri-stdlib-ifNonNull: {uri-stdlib-baseModule}/Null#ifNonNull()
|
|
||||||
:uri-stdlib-List: {uri-stdlib-baseModule}/List
|
|
||||||
:uri-stdlib-Set: {uri-stdlib-baseModule}/Set
|
|
||||||
:uri-stdlib-Map: {uri-stdlib-baseModule}/Map
|
|
||||||
:uri-stdlib-Listing: {uri-stdlib-baseModule}/Listing
|
|
||||||
:uri-stdlib-Listing-default: {uri-stdlib-baseModule}/Listing#default
|
|
||||||
:uri-stdlib-Listing-isDistinct: {uri-stdlib-baseModule}/Listing#isDistinct
|
|
||||||
:uri-stdlib-Listing-isDistinctBy: {uri-stdlib-baseModule}/Listing#isDistinctBy()
|
|
||||||
:uri-stdlib-Mapping: {uri-stdlib-baseModule}/Mapping
|
|
||||||
:uri-stdlib-Mapping-default: {uri-stdlib-baseModule}/Mapping#default
|
|
||||||
:uri-stdlib-Duration: {uri-stdlib-baseModule}/Duration
|
|
||||||
:uri-stdlib-Duration-value: {uri-stdlib-baseModule}/Duration#value
|
|
||||||
:uri-stdlib-Duration-unit: {uri-stdlib-baseModule}/Duration#unit
|
|
||||||
:uri-stdlib-DurationUnit: {uri-stdlib-baseModule}/#DurationUnit
|
|
||||||
:uri-stdlib-DataSize: {uri-stdlib-baseModule}/DataSize
|
|
||||||
:uri-stdlib-DataSize-value: {uri-stdlib-baseModule}/DataSize#value
|
|
||||||
:uri-stdlib-DataSize-unit: {uri-stdlib-baseModule}/DataSize#unit
|
|
||||||
:uri-stdlib-DataSizeUnit: {uri-stdlib-baseModule}/#DataSizeUnit
|
|
||||||
:uri-stdlib-Dynamic: {uri-stdlib-baseModule}/Dynamic
|
|
||||||
:uri-stdlib-Dynamic-toTyped: {uri-stdlib-baseModule}/Dynamic#toTyped()
|
|
||||||
:uri-stdlib-Typed: {uri-stdlib-baseModule}/Typed
|
|
||||||
:uri-stdlib-Regex: {uri-stdlib-baseModule}/Regex
|
|
||||||
:uri-stdlib-Regex-method: {uri-stdlib-baseModule}/#Regex()
|
|
||||||
:uri-stdlib-Regex-match: {uri-stdlib-baseModule}/Regex#match
|
|
||||||
:uri-stdlib-RegexMatch: {uri-stdlib-baseModule}/RegexMatch
|
|
||||||
:uri-stdlib-ValueRenderer: {uri-stdlib-baseModule}/ValueRenderer
|
|
||||||
:uri-stdlib-PcfRenderer-converters: {uri-stdlib-baseModule}/PcfRenderer#converters
|
|
||||||
:uri-stdlib-Function: {uri-stdlib-baseModule}/Function
|
|
||||||
:uri-stdlib-Function0: {uri-stdlib-baseModule}/Function0
|
|
||||||
:uri-stdlib-Function1: {uri-stdlib-baseModule}/Function1
|
|
||||||
:uri-stdlib-Function1-apply: {uri-stdlib-baseModule}/Function1#apply()
|
|
||||||
:uri-stdlib-Function2: {uri-stdlib-baseModule}/Function2
|
|
||||||
:uri-stdlib-Function3: {uri-stdlib-baseModule}/Function3
|
|
||||||
:uri-stdlib-Function4: {uri-stdlib-baseModule}/Function4
|
|
||||||
:uri-stdlib-Function5: {uri-stdlib-baseModule}/Function5
|
|
||||||
:uri-stdlib-Resource: {uri-stdlib-baseModule}/Resource
|
|
||||||
:uri-stdlib-outputFiles: {uri-stdlib-baseModule}/ModuleOutput#files
|
|
||||||
:uri-pkl-core-ModuleSchema: {uri-pkl-core-main-sources}/ModuleSchema.java
|
:uri-pkl-core-ModuleSchema: {uri-pkl-core-main-sources}/ModuleSchema.java
|
||||||
:uri-pkl-core-SecurityManager: {uri-pkl-core-main-sources}/SecurityManager.java
|
:uri-pkl-core-SecurityManager: {uri-pkl-core-main-sources}/SecurityManager.java
|
||||||
:uri-pkl-core-ResourceReader: {uri-pkl-core-main-sources}/resource/ResourceReader.java
|
:uri-pkl-core-ResourceReader: {uri-pkl-core-main-sources}/resource/ResourceReader.java
|
||||||
@@ -2813,7 +2749,7 @@ output {
|
|||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Running `pkl eval -m output/ pigeon.pkl` produces the following output files:
|
Running `pkl eval -m output/ birds.pkl` produces the following output files:
|
||||||
|
|
||||||
.output/birds/pigeon.json
|
.output/birds/pigeon.json
|
||||||
[source,json]
|
[source,json]
|
||||||
@@ -3777,10 +3713,18 @@ The following class types are _generic types_:
|
|||||||
|
|
||||||
* `Pair`
|
* `Pair`
|
||||||
* `Collection`
|
* `Collection`
|
||||||
|
* `Listing`
|
||||||
* `List`
|
* `List`
|
||||||
|
* `Mapping`
|
||||||
* `Set`
|
* `Set`
|
||||||
* `Map`
|
* `Map`
|
||||||
* `Container`
|
* `Function0`
|
||||||
|
* `Function1`
|
||||||
|
* `Function2`
|
||||||
|
* `Function3`
|
||||||
|
* `Function4`
|
||||||
|
* `Function5`
|
||||||
|
* `Class`
|
||||||
|
|
||||||
A generic type has constituent types written in angle brackets (`<>`):
|
A generic type has constituent types written in angle brackets (`<>`):
|
||||||
|
|
||||||
@@ -3791,7 +3735,7 @@ coll: Collection<Bird> // <2>
|
|||||||
list: List<Bird> // <3>
|
list: List<Bird> // <3>
|
||||||
set: Set<Bird> // <4>
|
set: Set<Bird> // <4>
|
||||||
map: Map<String, Bird> // <5>
|
map: Map<String, Bird> // <5>
|
||||||
cont: Mapping<String, Bird> // <6>
|
mapping: Mapping<String, Bird> // <6>
|
||||||
----
|
----
|
||||||
|
|
||||||
<1> a pair with first element of type `String` and second element of type `Bird`
|
<1> a pair with first element of type `String` and second element of type `Bird`
|
||||||
@@ -3799,7 +3743,7 @@ cont: Mapping<String, Bird> // <6>
|
|||||||
<3> a list of `Bird` elements
|
<3> a list of `Bird` elements
|
||||||
<4> a set of `Bird` elements
|
<4> a set of `Bird` elements
|
||||||
<5> a map with `String` keys and `Bird` values
|
<5> a map with `String` keys and `Bird` values
|
||||||
<6> a container of `Bird` elements
|
<6> a mapping of `String` keys and `Bird` values
|
||||||
|
|
||||||
Omitting the constituent types is equivalent to declaring them as `unknown`:
|
Omitting the constituent types is equivalent to declaring them as `unknown`:
|
||||||
|
|
||||||
@@ -3810,7 +3754,7 @@ coll: Collection // equivalent to `Collection<unknown>`
|
|||||||
list: List // equivalent to `List<unknown>`
|
list: List // equivalent to `List<unknown>`
|
||||||
set: Set // equivalent to `Set<unknown>`
|
set: Set // equivalent to `Set<unknown>`
|
||||||
map: Map // equivalent to `Map<unknown, unknown>`
|
map: Map // equivalent to `Map<unknown, unknown>`
|
||||||
cont: Mapping // equivalent to `Mapping<unknown, unknown>`
|
mapping: Mapping // equivalent to `Mapping<unknown, unknown>`
|
||||||
----
|
----
|
||||||
|
|
||||||
The `unknown` type is both a top and a bottom type.
|
The `unknown` type is both a top and a bottom type.
|
||||||
@@ -3946,7 +3890,7 @@ nullish: Null // = null <11>
|
|||||||
<2> Properties of type `List` default to the empty list.
|
<2> Properties of type `List` default to the empty list.
|
||||||
<3> Properties of type `Set` default to the empty set.
|
<3> Properties of type `Set` default to the empty set.
|
||||||
<4> Properties of type `Map` default to the empty map.
|
<4> Properties of type `Map` default to the empty map.
|
||||||
<5> Properties of type `Listing<X>` default to an empty listing whose default element is the default for `Y`.
|
<5> Properties of type `Listing<X>` default to an empty listing whose default element is the default for `X`.
|
||||||
<6> Properties of type `Mapping<X, Y>` default to an empty mapping whose default value is the default for `Y`.
|
<6> Properties of type `Mapping<X, Y>` default to an empty mapping whose default value is the default for `Y`.
|
||||||
<7> Properties of non-external class type `X` default to `new X {}`.
|
<7> Properties of non-external class type `X` default to `new X {}`.
|
||||||
<8> Properties of type `X?` default to `Null(x)` where `x` is the default for `X`.
|
<8> Properties of type `X?` default to `Null(x)` where `x` is the default for `X`.
|
||||||
@@ -5301,7 +5245,7 @@ package {
|
|||||||
name = "birds"
|
name = "birds"
|
||||||
baseUri = "package://example.com/birds"
|
baseUri = "package://example.com/birds"
|
||||||
version = "1.8.3"
|
version = "1.8.3"
|
||||||
packageZipUrl = "https://example.com/birds@\(version).zip
|
packageZipUrl = "https://example.com/birds@\(version).zip"
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
<1> Specify relative project `../fruit` as a dependency.
|
<1> Specify relative project `../fruit` as a dependency.
|
||||||
@@ -5315,7 +5259,7 @@ package {
|
|||||||
name = "fruit"
|
name = "fruit"
|
||||||
baseUri = "package://example.com/fruit"
|
baseUri = "package://example.com/fruit"
|
||||||
version = "1.5.0"
|
version = "1.5.0"
|
||||||
packageZipUrl = "https://example.com/fruit@\(version).zip
|
packageZipUrl = "https://example.com/fruit@\(version).zip"
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ When you run this, Pkl expands everything fully.
|
|||||||
[source,{pkl}]
|
[source,{pkl}]
|
||||||
----
|
----
|
||||||
bird {
|
bird {
|
||||||
name = "Common wood pigeon"
|
name = "Pigeon"
|
||||||
diet = "Seeds"
|
diet = "Seeds"
|
||||||
taxonomy {
|
taxonomy {
|
||||||
kingdom = "Animalia"
|
kingdom = "Animalia"
|
||||||
@@ -225,7 +225,7 @@ parrot = (pigeon) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
<1> Importing `foo.pkl` creates the object `foo`, so you can refer to `pigeon` in this code, like you did before.
|
<1> Importing `pigeon.pkl` creates the object `pigeon`, so you can refer to `pigeon` in this code, like you did before.
|
||||||
|
|
||||||
If you run Pkl on both, you will see that it works.
|
If you run Pkl on both, you will see that it works.
|
||||||
Looking at the result, however, you see a (possibly) unexpected difference.
|
Looking at the result, however, you see a (possibly) unexpected difference.
|
||||||
@@ -372,11 +372,11 @@ pipelines {
|
|||||||
<1> There is no pipeline object to amend. The `new` keyword gives you an object to amend.
|
<1> There is no pipeline object to amend. The `new` keyword gives you an object to amend.
|
||||||
|
|
||||||
So far, you've defined objects the same way you amended them.
|
So far, you've defined objects the same way you amended them.
|
||||||
When the name `foo` didn't occur before, `foo { ... }` _creates_ a property called `foo` and assigns to it the object specified on the `...`.
|
When the `name` didn't occur before, `new { ... }` _creates_ a property called `name` and assigns to it the object specified on the `Listing`.
|
||||||
If `foo` is an existing object, this notation is an _amend expression_; resulting in a new _object_ (value), but _not_ a new (named) property.
|
If `name` is an existing object, this notation is an _amend expression_; resulting in a new _object_ (value), but _not_ a new (named) property.
|
||||||
Since `pipelines` is a listing, you can _add_ elements by writing expressions in an amend expression.
|
Since `pipelines` is a listing, you can _add_ elements by writing expressions in an amend expression.
|
||||||
|
|
||||||
In this case, though, there is no object to amend. Writing `myNewPipeline { ... }` defines a _property_, but listings may only include _elements_.
|
In this case, though, there is no object to amend. Writing `pipelines { ... }` defines a _property_, but listings may only include _elements_.
|
||||||
This is where you can use the keyword `new`.
|
This is where you can use the keyword `new`.
|
||||||
|
|
||||||
`new` gives you an object to amend.
|
`new` gives you an object to amend.
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ pklTutorialPart3 {
|
|||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Sadly, `pklTutorialParts.pkl` is a _rewrite_ of `pklTutorial.pkl`.
|
Sadly, `pklTutorialParts.pkl` is a _rewrite_ of `pklTutorialPart3.pkl`.
|
||||||
It creates a separate `class TutorialPart` and instantiates three properties with it (`pklTutorialPart1`, `pklTutorialPart2` and `pklTutorialPart3`).
|
It creates a separate `class TutorialPart` and instantiates three properties with it (`pklTutorialPart1`, `pklTutorialPart2` and `pklTutorialPart3`).
|
||||||
In doing so, it implicitly moves everything "down" one level (`pklTutorialPart3` is now a property in the module `pklTutorialParts`, whereas above, in `pklTutorialPart3.pkl` it was its own module).
|
In doing so, it implicitly moves everything "down" one level (`pklTutorialPart3` is now a property in the module `pklTutorialParts`, whereas above, in `pklTutorialPart3.pkl` it was its own module).
|
||||||
This is not very DRY.
|
This is not very DRY.
|
||||||
@@ -262,7 +262,7 @@ Suppose you want to define what a live workshop for this tutorial looks like.
|
|||||||
Consider this example:
|
Consider this example:
|
||||||
|
|
||||||
[source,{pkl}]
|
[source,{pkl}]
|
||||||
.workshop2023.pkl
|
.workshop2024.pkl
|
||||||
----
|
----
|
||||||
title = "Pkl: Configure your Systems in New Ways"
|
title = "Pkl: Configure your Systems in New Ways"
|
||||||
interactive = true
|
interactive = true
|
||||||
@@ -278,7 +278,7 @@ duration = 1.5.h
|
|||||||
|
|
||||||
event {
|
event {
|
||||||
name = "Migrating Birds between hemispheres"
|
name = "Migrating Birds between hemispheres"
|
||||||
year = 2023
|
year = 2024
|
||||||
}
|
}
|
||||||
|
|
||||||
instructors {
|
instructors {
|
||||||
@@ -288,11 +288,11 @@ instructors {
|
|||||||
|
|
||||||
sessions {
|
sessions {
|
||||||
new {
|
new {
|
||||||
date = "8/14/2023"
|
date = "2/1/2024"
|
||||||
time = 30.min
|
time = 30.min
|
||||||
}
|
}
|
||||||
new {
|
new {
|
||||||
date = "8/15/2023"
|
date = "2/1/2024"
|
||||||
time = 30.min
|
time = 30.min
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,10 +32,10 @@ For interactive development, the CLI includes a Read-Eval-Print Loop (REPL).
|
|||||||
The CLI comes in multiple flavors:
|
The CLI comes in multiple flavors:
|
||||||
|
|
||||||
* Native macOS executable for amd64 (tested on macOS 10.15)
|
* Native macOS executable for amd64 (tested on macOS 10.15)
|
||||||
* Native Linux executable for amd64 (tested on Oracle Linux 8)
|
* Native Linux executable for amd64
|
||||||
* Native Linux executable for aarch64 (tested on Oracle Linux 8)
|
* Native Linux executable for aarch64
|
||||||
* Native Alpine Linux executable for amd64 (cross-compiled and tested on Oracle Linux 8)
|
* Native Alpine Linux executable for amd64 (cross-compiled and tested on Oracle Linux 8)
|
||||||
* Java executable (tested with Java 8/11/14 on macOS and Oracle Linux)
|
* Java executable (tested with Java 11/17 on macOS and Oracle Linux)
|
||||||
|
|
||||||
On macOS and Linux, we recommend using the native executables.
|
On macOS and Linux, we recommend using the native executables.
|
||||||
They are self-contained, start up instantly, and run complex Pkl code much faster than the Java executable.
|
They are self-contained, start up instantly, and run complex Pkl code much faster than the Java executable.
|
||||||
@@ -48,38 +48,37 @@ whereas, the Alpine Linux executable is statically linked against _musl libc_ an
|
|||||||
====
|
====
|
||||||
|
|
||||||
The Java executable works on multiple platforms and has a smaller binary size than the native executables.
|
The Java executable works on multiple platforms and has a smaller binary size than the native executables.
|
||||||
However, it requires a Java 8 (or higher) runtime on the system path, has a noticeable startup delay,
|
However, it requires a Java 11 (or higher) runtime on the system path, has a noticeable startup delay,
|
||||||
and runs complex Pkl code slower than the native executables.
|
and runs complex Pkl code slower than the native executables.
|
||||||
|
|
||||||
All flavors are built from the same codebase and undergo the same automated testing.
|
All flavors are built from the same codebase and undergo the same automated testing.
|
||||||
Except where noted otherwise, the rest of this page discusses the native executables.
|
Except where noted otherwise, the rest of this page discusses the native executables.
|
||||||
|
|
||||||
//TODO uncomment this after brew formula is merged and available
|
[[homebrew]]
|
||||||
// [[homebrew]]
|
=== Homebrew
|
||||||
// === Homebrew
|
|
||||||
//
|
Release versions can be installed with {uri-homebrew}[Homebrew].
|
||||||
// Release versions can be installed with {uri-homebrew}[Homebrew].
|
|
||||||
//
|
ifdef::is-release-version[]
|
||||||
// ifdef::is-release-version[]
|
To install Pkl, run:
|
||||||
// To install Pkl, run:
|
|
||||||
//
|
[source,shell]
|
||||||
// [source,shell]
|
----
|
||||||
// ----
|
brew install pkl
|
||||||
// brew install pkl
|
----
|
||||||
// ----
|
|
||||||
//
|
To update Pkl, run:
|
||||||
// To update Pkl, run:
|
|
||||||
//
|
[source,shell]
|
||||||
// [source,shell]
|
----
|
||||||
// ----
|
brew update
|
||||||
// brew update
|
brew upgrade pkl # or just `brew upgrade`
|
||||||
// brew upgrade pkl # or just `brew upgrade`
|
----
|
||||||
// ----
|
endif::[]
|
||||||
// endif::[]
|
|
||||||
//
|
ifndef::is-release-version[]
|
||||||
// ifndef::is-release-version[]
|
For instructions, switch to a release version of this page.
|
||||||
// For instructions, switch to a release version of this page.
|
endif::[]
|
||||||
// endif::[]
|
|
||||||
|
|
||||||
[[download]]
|
[[download]]
|
||||||
=== Download
|
=== Download
|
||||||
|
|||||||
@@ -39,11 +39,14 @@ dependencies {
|
|||||||
compile "org.pkl-lang:pkl-core:{pkl-artifact-version}"
|
compile "org.pkl-lang:pkl-core:{pkl-artifact-version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "{uri-sonatype}" }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url "{uri-sonatype}" }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Kotlin::
|
Kotlin::
|
||||||
@@ -55,11 +58,14 @@ dependencies {
|
|||||||
compile("org.pkl-lang:pkl-core:{pkl-artifact-version}")
|
compile("org.pkl-lang:pkl-core:{pkl-artifact-version}")
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("{uri-sonatype}") }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url = uri("{uri-sonatype}") }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -76,7 +82,7 @@ To use the library in a Maven project, declare the following dependency:
|
|||||||
<artifactId>pkl-core</artifactId>
|
<artifactId>pkl-core</artifactId>
|
||||||
<version>{pkl-artifact-version}</version>
|
<version>{pkl-artifact-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>sonatype-s01</id>
|
<id>sonatype-s01</id>
|
||||||
|
|||||||
@@ -95,11 +95,14 @@ dependencies {
|
|||||||
compile "org.pkl-lang:pkl-doc:{pkl-artifact-version}"
|
compile "org.pkl-lang:pkl-doc:{pkl-artifact-version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "{uri-sonatype}" }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url "{uri-sonatype}" }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Kotlin::
|
Kotlin::
|
||||||
@@ -111,11 +114,14 @@ dependencies {
|
|||||||
compile("org.pkl-lang:pkl-doc:{pkl-artifact-version}")
|
compile("org.pkl-lang:pkl-doc:{pkl-artifact-version}")
|
||||||
}
|
}
|
||||||
|
|
||||||
ifndef::is-release-build[]
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("{uri-sonatype}") }
|
ifdef::is-release-version[]
|
||||||
}
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
|
ifndef::is-release-version[]
|
||||||
|
maven { url = uri("{uri-sonatype}") }
|
||||||
|
endif::[]
|
||||||
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -132,7 +138,7 @@ To use the library in a Maven project, declare the following dependency:
|
|||||||
<artifactId>pkl-doc</artifactId>
|
<artifactId>pkl-doc</artifactId>
|
||||||
<version>{pkl-artifact-version}</version>
|
<version>{pkl-artifact-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>sonatype-s01</id>
|
<id>sonatype-s01</id>
|
||||||
|
|||||||
@@ -47,10 +47,10 @@ plugins {
|
|||||||
----
|
----
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
ifdef::is-release-build[]
|
ifdef::is-release-version[]
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
maven { url "{uri-sonatype}" }
|
maven { url "{uri-sonatype}" }
|
||||||
endif::[]
|
endif::[]
|
||||||
}
|
}
|
||||||
@@ -72,10 +72,10 @@ plugins {
|
|||||||
----
|
----
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
ifdef::is-release-build[]
|
ifdef::is-release-version[]
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
endif::[]
|
endif::[]
|
||||||
ifndef::is-release-build[]
|
ifndef::is-release-version[]
|
||||||
maven { url = uri("{uri-sonatype}") }
|
maven { url = uri("{uri-sonatype}") }
|
||||||
endif::[]
|
endif::[]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
= Pkl 0.25 Release Notes
|
= Pkl 0.25 Release Notes
|
||||||
:version: 0.25
|
:version: 0.25
|
||||||
:version-minor: 0.25.2
|
:version-minor: 0.25.3
|
||||||
:release-date: February 1st, 2024
|
:release-date: February 1st, 2024
|
||||||
|
|
||||||
Pkl {version} was released on {release-date}. +
|
Pkl {version} was released on {release-date}. +
|
||||||
|
|||||||
@@ -1,6 +1,38 @@
|
|||||||
= Changelog
|
= Changelog
|
||||||
include::ROOT:partial$component-attributes.adoc[]
|
include::ROOT:partial$component-attributes.adoc[]
|
||||||
|
|
||||||
|
[[release-0.25.3]]
|
||||||
|
== 0.25.3 (2024-03-26)
|
||||||
|
|
||||||
|
=== Fixes
|
||||||
|
|
||||||
|
* Fixes some issues with generated pkldoc websites (link:https://github.com/apple/pkl/pull/357[#357], link:https://github.com/apple/pkl/pull/362[#362])
|
||||||
|
* Fixes a bug where amending a module that defines an abstract class might cause a Java `AssertionError` (link:https://github.com/apple/pkl/pull/319[#319])
|
||||||
|
* Fixes a bug where a for/when generator within a lambda declared with `new {}` syntax might not resolve variables correctly (link:https://github.com/apple/pkl/pull/297[#297])
|
||||||
|
* Fixes a bug where `const` and `local` modifiers are not exported when obtaining a class's mirror in `pkl:reflect` (link:https://github.com/apple/pkl/pull/265[#265]).
|
||||||
|
|
||||||
|
=== Miscellaneous
|
||||||
|
|
||||||
|
* Documentation improvements (link:https://github.com/apple/pkl/pull/93[#93], link:https://github.com/apple/pkl/pull/106[#106], link:https://github.com/apple/pkl/pull/143[#143], link:https://github.com/apple/pkl/pull/205[#205], link:https://github.com/apple/pkl/pull/214[#214], link:https://github.com/apple/pkl/pull/224[#224], link:https://github.com/apple/pkl/pull/257[#257], link:https://github.com/apple/pkl/pull/270[#270], link:https://github.com/apple/pkl/pull/282[#282], link:https://github.com/apple/pkl/pull/283[#283], link:https://github.com/apple/pkl/pull/299[#299], link:https://github.com/apple/pkl/pull/337[#337], link:https://github.com/apple/pkl/pull/340[#340])
|
||||||
|
* Build script improvements (link:https://github.com/apple/pkl/pull/253[#253], link:https://github.com/apple/pkl/pull/314[#314], link:https://github.com/apple/pkl/pull/333[#333], link:https://github.com/apple/pkl/pull/338[#338])
|
||||||
|
|
||||||
|
=== Changes
|
||||||
|
|
||||||
|
* Add `jpkl` to the set of artifacts released to GitHub (link:https://github.com/apple/pkl/pull/314[#314])
|
||||||
|
|
||||||
|
=== Contributors ❤️
|
||||||
|
|
||||||
|
Thank you to all the contributors for this release!
|
||||||
|
|
||||||
|
* link:https://github.com/r1ft1[@r1ft1]
|
||||||
|
* link:https://github.com/WardsParadox[@WardsParadox]
|
||||||
|
* link:https://github.com/grantabbott[@grantabbott]
|
||||||
|
* link:https://github.com/mshakhmaykin[@mshakhmaykin]
|
||||||
|
* link:https://github.com/d4wae89d498[@d4wae89d498]
|
||||||
|
* link:https://github.com/KushalP[@KushalP]
|
||||||
|
* link:https://github.com/zihluwang[@zihluwang]
|
||||||
|
* link:https://github.com/Malix-off[@Malix-off]
|
||||||
|
|
||||||
[[release-0.25.2]]
|
[[release-0.25.2]]
|
||||||
== 0.25.2 (2024-02-08)
|
== 0.25.2 (2024-02-08)
|
||||||
|
|
||||||
@@ -8,7 +40,6 @@ include::ROOT:partial$component-attributes.adoc[]
|
|||||||
|
|
||||||
* Fixes some issues with generated pkldoc websites (link:https://github.com/apple/pkl/pull/70[#70],
|
* Fixes some issues with generated pkldoc websites (link:https://github.com/apple/pkl/pull/70[#70],
|
||||||
link:https://github.com/apple/pkl/pull/81[#81], link:https://github.com/apple/pkl/pull/96[#96])
|
link:https://github.com/apple/pkl/pull/81[#81], link:https://github.com/apple/pkl/pull/96[#96])
|
||||||
* Removes errorneously published artifact called "pkl-cli" (link:https://github.com/apple/pkl/pull/98[#98])
|
|
||||||
* Fixes an issue where a PklBugException produces an incorrect URL to file issues (link:https://github.com/apple/pkl/pull/73[#73])
|
* Fixes an issue where a PklBugException produces an incorrect URL to file issues (link:https://github.com/apple/pkl/pull/73[#73])
|
||||||
|
|
||||||
=== Miscellaneous
|
=== Miscellaneous
|
||||||
|
|||||||
+21
-21
@@ -1,19 +1,31 @@
|
|||||||
* xref:pkl-cli:index.adoc#installation[Installation]
|
|
||||||
* xref:language-tutorial:index.adoc[Tutorial]
|
|
||||||
** xref:language-tutorial:01_basic_config.adoc[Basic Configuration]
|
|
||||||
** xref:language-tutorial:02_filling_out_a_template.adoc[Filling out a Template]
|
|
||||||
** xref:language-tutorial:03_writing_a_template.adoc[Writing a Template]
|
|
||||||
* xref:language-reference:index.adoc[Language Reference]
|
|
||||||
|
|
||||||
* xref:introduction:index.adoc[Introduction]
|
* xref:introduction:index.adoc[Introduction]
|
||||||
** xref:introduction:use-cases.adoc[Use Cases]
|
** xref:introduction:use-cases.adoc[Use Cases]
|
||||||
** xref:introduction:concepts.adoc[Concepts]
|
** xref:introduction:concepts.adoc[Concepts]
|
||||||
** xref:introduction:comparison.adoc[Comparison]
|
** xref:introduction:comparison.adoc[Comparison]
|
||||||
|
|
||||||
|
* xref:pkl-cli:index.adoc#installation[Installation]
|
||||||
|
|
||||||
|
* xref:language-tutorial:index.adoc[Tutorial]
|
||||||
|
** xref:language-tutorial:01_basic_config.adoc[Basic Configuration]
|
||||||
|
** xref:language-tutorial:02_filling_out_a_template.adoc[Filling out a Template]
|
||||||
|
** xref:language-tutorial:03_writing_a_template.adoc[Writing a Template]
|
||||||
|
|
||||||
* xref:ROOT:language.adoc[Language]
|
* xref:ROOT:language.adoc[Language]
|
||||||
** xref:language-tutorial:index.adoc[Tutorial]
|
|
||||||
** xref:language-reference:index.adoc[Language Reference]
|
** xref:language-reference:index.adoc[Language Reference]
|
||||||
** xref:ROOT:standard-library.adoc[Standard Library]
|
** xref:ROOT:standard-library.adoc[Standard Library]
|
||||||
|
** xref:ROOT:language-bindings.adoc[Language Bindings]
|
||||||
|
*** xref:java-binding:index.adoc[Java]
|
||||||
|
**** xref:java-binding:codegen.adoc[Code Generator]
|
||||||
|
**** xref:pkl-core:index.adoc[pkl-core Library]
|
||||||
|
**** xref:java-binding:pkl-config-java.adoc[pkl-config-java Library]
|
||||||
|
*** xref:kotlin-binding:index.adoc[Kotlin]
|
||||||
|
**** xref:kotlin-binding:codegen.adoc[Code Generator]
|
||||||
|
**** xref:kotlin-binding:pkl-config-kotlin.adoc[pkl-config-kotlin Library]
|
||||||
|
*** xref:swift:ROOT:index.adoc[Swift]
|
||||||
|
*** xref:go:ROOT:index.adoc[Go]
|
||||||
|
*** xref:bindings-specification:index.adoc[Specification]
|
||||||
|
**** xref:bindings-specification:message-passing-api.adoc[Message Passing API]
|
||||||
|
**** xref:bindings-specification:binary-encoding.adoc[Pkl Binary Encoding]
|
||||||
|
|
||||||
* xref:ROOT:tools.adoc[Tools]
|
* xref:ROOT:tools.adoc[Tools]
|
||||||
** xref:pkl-cli:index.adoc[CLI]
|
** xref:pkl-cli:index.adoc[CLI]
|
||||||
@@ -24,21 +36,9 @@
|
|||||||
*** xref:vscode:ROOT:index.adoc[VSCode]
|
*** xref:vscode:ROOT:index.adoc[VSCode]
|
||||||
*** xref:neovim:ROOT:index.adoc[Neovim]
|
*** xref:neovim:ROOT:index.adoc[Neovim]
|
||||||
|
|
||||||
* xref:ROOT:language-bindings.adoc[Language Bindings]
|
|
||||||
** xref:java-binding:index.adoc[Java]
|
|
||||||
*** xref:java-binding:codegen.adoc[Code Generator]
|
|
||||||
*** xref:pkl-core:index.adoc[pkl-core Library]
|
|
||||||
*** xref:java-binding:pkl-config-java.adoc[pkl-config-java Library]
|
|
||||||
|
|
||||||
** xref:kotlin-binding:index.adoc[Kotlin]
|
|
||||||
*** xref:kotlin-binding:codegen.adoc[Code Generator]
|
|
||||||
*** xref:kotlin-binding:pkl-config-kotlin.adoc[pkl-config-kotlin Library]
|
|
||||||
|
|
||||||
** xref:swift:ROOT:index.adoc[Swift]
|
|
||||||
** xref:go:ROOT:index.adoc[Go]
|
|
||||||
|
|
||||||
* xref:ROOT:examples.adoc[Examples]
|
* xref:ROOT:examples.adoc[Examples]
|
||||||
|
|
||||||
* xref:release-notes:index.adoc[Release Notes]
|
* xref:release-notes:index.adoc[Release Notes]
|
||||||
** xref:release-notes:0.25.adoc[0.25 Release Notes]
|
** xref:release-notes:0.25.adoc[0.25 Release Notes]
|
||||||
** xref:release-notes:changelog.adoc[Changelog]
|
** xref:release-notes:changelog.adoc[Changelog]
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
# suppress inspection "UnusedProperty" for whole file
|
# suppress inspection "UnusedProperty" for whole file
|
||||||
|
|
||||||
group=org.pkl-lang
|
group=org.pkl-lang
|
||||||
version=0.25.2
|
version=0.25.3
|
||||||
|
|
||||||
# google-java-format requires jdk.compiler exports
|
# google-java-format requires jdk.compiler exports
|
||||||
org.gradle.jvmargs= \
|
org.gradle.jvmargs= \
|
||||||
|
|||||||
@@ -72,6 +72,14 @@ public final class VmModifier {
|
|||||||
|
|
||||||
public static final int VALID_OBJECT_MEMBER_MODIFIERS = LOCAL;
|
public static final int VALID_OBJECT_MEMBER_MODIFIERS = LOCAL;
|
||||||
|
|
||||||
|
public static final int TYPEALIAS_OBJECT_MEMBER = TYPE_ALIAS | CONST;
|
||||||
|
|
||||||
|
public static final int LOCAL_TYPEALIAS_OBJECT_MEMBER = LOCAL | TYPEALIAS_OBJECT_MEMBER;
|
||||||
|
|
||||||
|
public static final int CLASS_OBJECT_MEMBER = CLASS | CONST;
|
||||||
|
|
||||||
|
public static final int LOCAL_CLASS_OBJECT_MEMBER = LOCAL | CLASS_OBJECT_MEMBER;
|
||||||
|
|
||||||
public static boolean isLocal(int modifiers) {
|
public static boolean isLocal(int modifiers) {
|
||||||
return (modifiers & LOCAL) != 0;
|
return (modifiers & LOCAL) != 0;
|
||||||
}
|
}
|
||||||
@@ -164,6 +172,10 @@ public final class VmModifier {
|
|||||||
return "hidden";
|
return "hidden";
|
||||||
case EXTERNAL:
|
case EXTERNAL:
|
||||||
return "external";
|
return "external";
|
||||||
|
case FIXED:
|
||||||
|
return "fixed";
|
||||||
|
case CONST:
|
||||||
|
return "const";
|
||||||
default:
|
default:
|
||||||
throw new VmExceptionBuilder()
|
throw new VmExceptionBuilder()
|
||||||
.bug("Cannot convert internal modifier `%s` to a string.", toString(modifier))
|
.bug("Cannot convert internal modifier `%s` to a string.", toString(modifier))
|
||||||
@@ -179,6 +191,8 @@ public final class VmModifier {
|
|||||||
if (isHidden(modifiers)) builder.add(toString(HIDDEN));
|
if (isHidden(modifiers)) builder.add(toString(HIDDEN));
|
||||||
// `external` modifier is part of class contract but not part of property/method contract
|
// `external` modifier is part of class contract but not part of property/method contract
|
||||||
if (isExternal(modifiers) && isClass) builder.add(toString(EXTERNAL));
|
if (isExternal(modifiers) && isClass) builder.add(toString(EXTERNAL));
|
||||||
|
if (isFixed(modifiers)) builder.add(toString(FIXED));
|
||||||
|
if (isConst(modifiers)) builder.add(toString(CONST));
|
||||||
|
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -305,11 +305,13 @@ public final class AstBuilder extends AbstractAstBuilder<Object> {
|
|||||||
doVisitClassProperties(propertyCtxs, propertyNames),
|
doVisitClassProperties(propertyCtxs, propertyNames),
|
||||||
doVisitMethodDefs(methodCtxs));
|
doVisitMethodDefs(methodCtxs));
|
||||||
|
|
||||||
|
var isLocal = VmModifier.isLocal(modifiers);
|
||||||
|
|
||||||
var result =
|
var result =
|
||||||
new ObjectMember(
|
new ObjectMember(
|
||||||
sourceSection,
|
sourceSection,
|
||||||
headerSection,
|
headerSection,
|
||||||
modifiers | VmModifier.CONST,
|
isLocal ? VmModifier.LOCAL_CLASS_OBJECT_MEMBER : VmModifier.CLASS_OBJECT_MEMBER,
|
||||||
scope.getName(),
|
scope.getName(),
|
||||||
scope.getQualifiedName());
|
scope.getQualifiedName());
|
||||||
|
|
||||||
@@ -360,7 +362,9 @@ public final class AstBuilder extends AbstractAstBuilder<Object> {
|
|||||||
new ObjectMember(
|
new ObjectMember(
|
||||||
sourceSection,
|
sourceSection,
|
||||||
headerSection,
|
headerSection,
|
||||||
modifiers | VmModifier.CONST,
|
isLocal
|
||||||
|
? VmModifier.LOCAL_TYPEALIAS_OBJECT_MEMBER
|
||||||
|
: VmModifier.TYPEALIAS_OBJECT_MEMBER,
|
||||||
scopeName,
|
scopeName,
|
||||||
scope.getQualifiedName());
|
scope.getQualifiedName());
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ public final class AmendFunctionNode extends PklNode {
|
|||||||
} else {
|
} else {
|
||||||
parameterSlots = new int[0];
|
parameterSlots = new int[0];
|
||||||
}
|
}
|
||||||
|
var hasForGenVars = false;
|
||||||
for (var i = 0; i < hostFrameDesecriptor.getNumberOfSlots(); i++) {
|
for (var i = 0; i < hostFrameDesecriptor.getNumberOfSlots(); i++) {
|
||||||
var slotInfo = hostFrameDesecriptor.getSlotInfo(i);
|
var slotInfo = hostFrameDesecriptor.getSlotInfo(i);
|
||||||
// Copy for-generator variables from the outer frame descriptor into inner lambda.
|
// Copy for-generator variables from the outer frame descriptor into inner lambda.
|
||||||
@@ -74,10 +75,22 @@ public final class AmendFunctionNode extends PklNode {
|
|||||||
// frame (e.g. with `new Mixin { ... }` syntax), so it injects for-generator vars into the
|
// frame (e.g. with `new Mixin { ... }` syntax), so it injects for-generator vars into the
|
||||||
// wrong frame.
|
// wrong frame.
|
||||||
//
|
//
|
||||||
// As a remedy, we simply copy outer for-generator variables into this frame.
|
// As a remedy, we simply copy outer variables into this frame if there are any for generator
|
||||||
|
// variables.
|
||||||
|
//
|
||||||
|
// We need to preserve the frame slot index, so we insert dummy identifiers
|
||||||
|
// for other slots that aren't for generator variables.
|
||||||
if (slotInfo != null && slotInfo.equals(SymbolTable.FOR_GENERATOR_VARIABLE)) {
|
if (slotInfo != null && slotInfo.equals(SymbolTable.FOR_GENERATOR_VARIABLE)) {
|
||||||
|
if (!hasForGenVars) {
|
||||||
|
hasForGenVars = true;
|
||||||
|
for (var j = 0; j < i; j++) {
|
||||||
|
builder.addSlot(FrameSlotKind.Illegal, Identifier.DUMMY, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
builder.addSlot(
|
builder.addSlot(
|
||||||
hostFrameDesecriptor.getSlotKind(i), hostFrameDesecriptor.getSlotName(i), null);
|
hostFrameDesecriptor.getSlotKind(i), hostFrameDesecriptor.getSlotName(i), null);
|
||||||
|
} else if (hasForGenVars) {
|
||||||
|
builder.addSlot(FrameSlotKind.Illegal, Identifier.DUMMY, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var objectToAmendSlot = builder.addSlot(FrameSlotKind.Object, new Object(), null);
|
var objectToAmendSlot = builder.addSlot(FrameSlotKind.Object, new Object(), null);
|
||||||
|
|||||||
@@ -152,6 +152,9 @@ public final class Identifier implements Comparable<Identifier> {
|
|||||||
// common in lambdas etc
|
// common in lambdas etc
|
||||||
public static final Identifier IT = get("it");
|
public static final Identifier IT = get("it");
|
||||||
|
|
||||||
|
// dummy, unrepresentable identifier
|
||||||
|
public static final Identifier DUMMY = get("`#_");
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
private Identifier(String name) {
|
private Identifier(String name) {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import org.pkl.core.util.Nullable;
|
|||||||
@TruffleLanguage.Registration(
|
@TruffleLanguage.Registration(
|
||||||
id = "pkl",
|
id = "pkl",
|
||||||
name = "Pkl",
|
name = "Pkl",
|
||||||
version = "0.25.2",
|
version = "0.25.3",
|
||||||
characterMimeTypes = VmLanguage.MIME_TYPE,
|
characterMimeTypes = VmLanguage.MIME_TYPE,
|
||||||
contextPolicy = ContextPolicy.SHARED)
|
contextPolicy = ContextPolicy.SHARED)
|
||||||
public final class VmLanguage extends TruffleLanguage<VmContext> {
|
public final class VmLanguage extends TruffleLanguage<VmContext> {
|
||||||
|
|||||||
+4
@@ -49,6 +49,10 @@ stringLiteral: "yes"
|
|||||||
constrained: String(length.isBetween(3, 10))
|
constrained: String(length.isBetween(3, 10))
|
||||||
aliased: MyMap<Person>
|
aliased: MyMap<Person>
|
||||||
|
|
||||||
|
hidden hiddenProp: String
|
||||||
|
const constProp: String = "the const prop"
|
||||||
|
fixed fixedProp: String = "the fixed prop"
|
||||||
|
|
||||||
/// class doc comment
|
/// class doc comment
|
||||||
@MyAnn { text = "class annotation" }
|
@MyAnn { text = "class annotation" }
|
||||||
open class Person {
|
open class Person {
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
module Birds
|
||||||
|
|
||||||
|
abstract class Bird {
|
||||||
|
name: String
|
||||||
|
}
|
||||||
|
|
||||||
|
class Pigeon extends Bird {
|
||||||
|
name = "Pigeon"
|
||||||
|
passenger: Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
pidgy: Pigeon?
|
||||||
@@ -152,6 +152,9 @@ examples {
|
|||||||
personClassProperties.keys
|
personClassProperties.keys
|
||||||
testHelpers.property(personClassProperties["name"], reflect.stringType)
|
testHelpers.property(personClassProperties["name"], reflect.stringType)
|
||||||
testHelpers.property(personClassProperties["age"], reflect.intType)
|
testHelpers.property(personClassProperties["age"], reflect.intType)
|
||||||
|
modClassProps["hiddenProp"].modifiers
|
||||||
|
modClassProps["constProp"].modifiers
|
||||||
|
modClassProps["fixedProp"].modifiers
|
||||||
}
|
}
|
||||||
|
|
||||||
["Reflected class methods metadata"] {
|
["Reflected class methods metadata"] {
|
||||||
|
|||||||
+10
@@ -38,3 +38,13 @@ function mapEnvLiteral(_env: Dynamic) = (it) -> (it) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addElements(keys: List<String>): Mixin<Mapping<String, String>> = new {
|
||||||
|
for (key in keys) {
|
||||||
|
[key] = key
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res = new Mapping<String, String> {
|
||||||
|
["base"] = "alreadyThere"
|
||||||
|
} |> addElements(List("newElement"))
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
amends ".../input-helper/modules/Birds.pkl"
|
||||||
@@ -67,7 +67,7 @@ facts {
|
|||||||
}
|
}
|
||||||
examples {
|
examples {
|
||||||
["Reflected module properties of unknown type metadata"] {
|
["Reflected module properties of unknown type metadata"] {
|
||||||
Set("int", "float", "string", "boolean", "duration", "dataSize", "pair", "list", "set", "map", "listing", "mapping", "dynamic", "typed", "int2", "float2", "string2", "boolean2", "duration2", "dataSize2", "pair2", "list2", "set2", "map2", "listing2", "mapping2", "dynamic2", "typed2", "any", "noth", "unkn", "union", "nullable", "stringLiteral", "constrained", "aliased")
|
Set("int", "float", "string", "boolean", "duration", "dataSize", "pair", "list", "set", "map", "listing", "mapping", "dynamic", "typed", "int2", "float2", "string2", "boolean2", "duration2", "dataSize2", "pair2", "list2", "set2", "map2", "listing2", "mapping2", "dynamic2", "typed2", "any", "noth", "unkn", "union", "nullable", "stringLiteral", "constrained", "aliased", "hiddenProp", "constProp", "fixedProp")
|
||||||
new {
|
new {
|
||||||
hasExpectedLocation = true
|
hasExpectedLocation = true
|
||||||
docComment = "module property doc comment"
|
docComment = "module property doc comment"
|
||||||
@@ -373,6 +373,9 @@ examples {
|
|||||||
defaultValue = 42
|
defaultValue = 42
|
||||||
hasExpectedType = true
|
hasExpectedType = true
|
||||||
}
|
}
|
||||||
|
Set("hidden")
|
||||||
|
Set("const")
|
||||||
|
Set("fixed")
|
||||||
}
|
}
|
||||||
["Reflected class methods metadata"] {
|
["Reflected class methods metadata"] {
|
||||||
Set("sing")
|
Set("sing")
|
||||||
|
|||||||
+4
@@ -36,3 +36,7 @@ foo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
res {
|
||||||
|
["base"] = "alreadyThere"
|
||||||
|
["newElement"] = "newElement"
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
pidgy = null
|
||||||
@@ -179,7 +179,7 @@ internal class DocPackage(val docPackageInfo: DocPackageInfo, val modules: List<
|
|||||||
mod,
|
mod,
|
||||||
docPackageInfo.version,
|
docPackageInfo.version,
|
||||||
docPackageInfo.getModuleImportUri(mod.moduleName),
|
docPackageInfo.getModuleImportUri(mod.moduleName),
|
||||||
docPackageInfo.getModuleSourceCode(mod.moduleName)?.toEncodedUri(),
|
docPackageInfo.getModuleSourceCode(mod.moduleName),
|
||||||
exampleModulesBySubject[mod.moduleName] ?: listOf()
|
exampleModulesBySubject[mod.moduleName] ?: listOf()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -160,19 +160,15 @@ data class DocPackageInfo(
|
|||||||
when (importUri) {
|
when (importUri) {
|
||||||
"pkl:/" -> "pkl:${moduleName.substring(4)}".toUri()
|
"pkl:/" -> "pkl:${moduleName.substring(4)}".toUri()
|
||||||
else -> {
|
else -> {
|
||||||
val path =
|
val path = getModulePath(moduleName, moduleNamePrefix).uriEncoded + ".pkl"
|
||||||
getModulePath(moduleName, moduleNamePrefix)
|
URI(importUri + path)
|
||||||
.split("/")
|
|
||||||
.map { it.uriEncoded }
|
|
||||||
.joinToString("/") { it } + ".pkl"
|
|
||||||
URI(importUri).resolve(path)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun getModuleSourceCode(moduleName: String): String? {
|
internal fun getModuleSourceCode(moduleName: String): URI? {
|
||||||
val path = "/" + getModulePath(moduleName, moduleNamePrefix) + ".pkl"
|
val path = "/" + getModulePath(moduleName, moduleNamePrefix).uriEncoded + ".pkl"
|
||||||
// assumption: the fragment is only used for line numbers
|
// assumption: the fragment is only used for line numbers
|
||||||
return sourceCodeUrlScheme?.replace("%{path}", path)?.substringBefore('#')
|
return sourceCodeUrlScheme?.replace("%{path}", path)?.substringBefore('#')?.let(URI::create)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Information about a depended-on package. */
|
/** Information about a depended-on package. */
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ internal class PackageScope(
|
|||||||
private val moduleScopes: Map<String, ModuleScope> by lazy {
|
private val moduleScopes: Map<String, ModuleScope> by lazy {
|
||||||
modules.associate { module ->
|
modules.associate { module ->
|
||||||
val docUrl =
|
val docUrl =
|
||||||
url.resolve(getModulePath(module.moduleName, modulePrefix).uriEncodedPath + "/index.html")
|
url.resolve(getModulePath(module.moduleName, modulePrefix).uriEncoded + "/index.html")
|
||||||
module.moduleName to ModuleScope(module, docUrl, this)
|
module.moduleName to ModuleScope(module, docUrl, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -326,7 +326,7 @@ internal class ModuleScope(
|
|||||||
get() = module.moduleName
|
get() = module.moduleName
|
||||||
|
|
||||||
val path: String by lazy {
|
val path: String by lazy {
|
||||||
getModulePath(module.moduleName, parent!!.docPackageInfo.moduleNamePrefix).uriEncodedPath
|
getModulePath(module.moduleName, parent!!.docPackageInfo.moduleNamePrefix).uriEncoded
|
||||||
}
|
}
|
||||||
|
|
||||||
override val dataUrl: URI by lazy { parent!!.dataUrl.resolve("./$path/index.js") }
|
override val dataUrl: URI by lazy { parent!!.dataUrl.resolve("./$path/index.js") }
|
||||||
@@ -386,11 +386,12 @@ internal class ClassScope(
|
|||||||
) : PageScope() {
|
) : PageScope() {
|
||||||
override val url: URI by lazy {
|
override val url: URI by lazy {
|
||||||
// `isModuleClass` distinction is relevant when this scope is a link target
|
// `isModuleClass` distinction is relevant when this scope is a link target
|
||||||
if (clazz.isModuleClass) parentUrl else parentUrl.resolve("${clazz.simpleName.uriEncoded}.html")
|
if (clazz.isModuleClass) parentUrl
|
||||||
|
else parentUrl.resolve("${clazz.simpleName.uriEncodedComponent}.html")
|
||||||
}
|
}
|
||||||
|
|
||||||
override val dataUrl: URI by lazy {
|
override val dataUrl: URI by lazy {
|
||||||
parent!!.dataUrl.resolve("${clazz.simpleName.uriEncoded}.js")
|
parent!!.dataUrl.resolve("${clazz.simpleName.uriEncodedComponent}.js")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMethod(name: String): MethodScope? =
|
override fun getMethod(name: String): MethodScope? =
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ internal abstract class PageGenerator<out S>(
|
|||||||
// anchors, and requires no JS
|
// anchors, and requires no JS
|
||||||
protected fun HtmlBlockTag.renderAnchor(anchorId: String, cssClass: String = "anchor") {
|
protected fun HtmlBlockTag.renderAnchor(anchorId: String, cssClass: String = "anchor") {
|
||||||
div {
|
div {
|
||||||
id = anchorId.uriEncoded
|
id = anchorId.uriEncodedComponent
|
||||||
classes = setOf(cssClass)
|
classes = setOf(cssClass)
|
||||||
+" " // needs some content to be considered a valid anchor by browsers
|
+" " // needs some content to be considered a valid anchor by browsers
|
||||||
}
|
}
|
||||||
@@ -457,7 +457,7 @@ internal abstract class PageGenerator<out S>(
|
|||||||
protected fun HtmlBlockTag.renderSelfLink(memberName: String) {
|
protected fun HtmlBlockTag.renderSelfLink(memberName: String) {
|
||||||
a {
|
a {
|
||||||
classes = setOf("member-selflink", "material-icons")
|
classes = setOf("member-selflink", "material-icons")
|
||||||
href = "#${memberName.uriEncoded}"
|
href = "#${memberName.uriEncodedComponent}"
|
||||||
+"link"
|
+"link"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -600,7 +600,8 @@ internal abstract class PageGenerator<out S>(
|
|||||||
for (example in examples) {
|
for (example in examples) {
|
||||||
if (first) first = false else +", "
|
if (first) first = false else +", "
|
||||||
a {
|
a {
|
||||||
href = docModule.parent.docPackageInfo.getModuleSourceCode(example.moduleName)!!
|
href =
|
||||||
|
docModule.parent.docPackageInfo.getModuleSourceCode(example.moduleName)!!.toString()
|
||||||
+example.shortModuleName
|
+example.shortModuleName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,12 @@ internal fun String.replaceSourceCodePlaceholders(
|
|||||||
.replace("%{endLine}", sourceLocation.endLine.toString())
|
.replace("%{endLine}", sourceLocation.endLine.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val String.uriEncoded
|
/**
|
||||||
|
* Encodes a URI string, encoding characters that are part of URI syntax.
|
||||||
|
*
|
||||||
|
* Follows `encodeURIComponent` from ECMAScript.
|
||||||
|
*/
|
||||||
|
internal val String.uriEncodedComponent
|
||||||
get(): String {
|
get(): String {
|
||||||
val ret = URLEncoder.encode(this, StandardCharsets.UTF_8)
|
val ret = URLEncoder.encode(this, StandardCharsets.UTF_8)
|
||||||
// Replace `+` with `%20` to be safe
|
// Replace `+` with `%20` to be safe
|
||||||
@@ -128,13 +133,18 @@ internal val String.uriEncoded
|
|||||||
return ret.replace("+", "%20")
|
return ret.replace("+", "%20")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val String.uriEncodedPath
|
/**
|
||||||
get(): String = split("/").map { it.uriEncoded }.joinToString("/") { it }
|
* Encodes a URI string, preserving characters that are part of URI syntax.
|
||||||
|
*
|
||||||
|
* Follows `encodeURI` from ECMAScript.
|
||||||
|
*/
|
||||||
|
internal val String.uriEncoded
|
||||||
|
get(): String = replace(Regex("([^;/?:@&=+\$,#]+)")) { it.value.uriEncodedComponent }
|
||||||
|
|
||||||
fun getModulePath(moduleName: String, packagePrefix: String): String =
|
fun getModulePath(moduleName: String, packagePrefix: String): String =
|
||||||
moduleName.substring(packagePrefix.length).replace('.', '/')
|
moduleName.substring(packagePrefix.length).replace('.', '/')
|
||||||
|
|
||||||
internal fun String.toEncodedUri(): URI = URI(uriEncodedPath)
|
internal fun String.toEncodedUri(): URI = URI(uriEncoded)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Turns `"foo.bar.baz-biz"` into ``"foo.bar.`baz-biz`"``.
|
* Turns `"foo.bar.baz-biz"` into ``"foo.bar.`baz-biz`"``.
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/Module%20Containing%20Spaces.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/Module%20Containing%20Spaces.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/Module%20Containing%20Spaces.pkl">Module Containing Spaces.pkl</a></dd>
|
<dd><a href="https://example.com/package1/Module%20Containing%20Spaces.pkl">Module Containing Spaces.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/baseModule.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/baseModule.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/baseModule.pkl">baseModule.pkl</a></dd>
|
<dd><a href="https://example.com/package1/baseModule.pkl">baseModule.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classAnnotations.pkl">classAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classAnnotations.pkl">classAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classComments.pkl">classComments.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classComments.pkl">classComments.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classInheritance.pkl">classInheritance.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classInheritance.pkl">classInheritance.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classMethodComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classMethodComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classMethodComments.pkl">classMethodComments.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classMethodComments.pkl">classMethodComments.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classMethodModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classMethodModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classMethodModifiers.pkl">classMethodModifiers.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classMethodModifiers.pkl">classMethodModifiers.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classMethodTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classMethodTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classMethodTypeAnnotations.pkl">classMethodTypeAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classMethodTypeAnnotations.pkl">classMethodTypeAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ the same module, a different module, and external modules.</p></div>
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classMethodTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classMethodTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classMethodTypeReferences.pkl">classMethodTypeReferences.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classMethodTypeReferences.pkl">classMethodTypeReferences.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classPropertyAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classPropertyAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classPropertyAnnotations.pkl">classPropertyAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classPropertyAnnotations.pkl">classPropertyAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classPropertyComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classPropertyComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classPropertyComments.pkl">classPropertyComments.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classPropertyComments.pkl">classPropertyComments.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classPropertyModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classPropertyModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classPropertyModifiers.pkl">classPropertyModifiers.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classPropertyModifiers.pkl">classPropertyModifiers.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classPropertyTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classPropertyTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classPropertyTypeAnnotations.pkl">classPropertyTypeAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classPropertyTypeAnnotations.pkl">classPropertyTypeAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ the same module, a different module, and external modules.</p></div>
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classPropertyTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classPropertyTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classPropertyTypeReferences.pkl">classPropertyTypeReferences.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classPropertyTypeReferences.pkl">classPropertyTypeReferences.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/classTypeConstraints.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/classTypeConstraints.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/classTypeConstraints.pkl">classTypeConstraints.pkl</a></dd>
|
<dd><a href="https://example.com/package1/classTypeConstraints.pkl">classTypeConstraints.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/docExampleSubject1.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/docExampleSubject1.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/docExampleSubject1.pkl">docExampleSubject1.pkl</a></dd>
|
<dd><a href="https://example.com/package1/docExampleSubject1.pkl">docExampleSubject1.pkl</a></dd>
|
||||||
<dt class="">Examples:</dt>
|
<dt class="">Examples:</dt>
|
||||||
<dd><a href="https://example.com/package1/docExample.pkl">docExample</a>, <a href="https://example.com/package1/docExample2.pkl">docExample2</a></dd>
|
<dd><a href="https://example.com/package1/docExample.pkl">docExample</a>, <a href="https://example.com/package1/docExample2.pkl">docExample2</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/docExampleSubject2.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/docExampleSubject2.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/docExampleSubject2.pkl">docExampleSubject2.pkl</a></dd>
|
<dd><a href="https://example.com/package1/docExampleSubject2.pkl">docExampleSubject2.pkl</a></dd>
|
||||||
<dt class="">Examples:</dt>
|
<dt class="">Examples:</dt>
|
||||||
<dd><a href="https://example.com/package1/docExample.pkl">docExample</a></dd>
|
<dd><a href="https://example.com/package1/docExample.pkl">docExample</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/docLinks.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/docLinks.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/docLinks.pkl">docLinks.pkl</a></dd>
|
<dd><a href="https://example.com/package1/docLinks.pkl">docLinks.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/methodAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/methodAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/methodAnnotations.pkl">methodAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/methodAnnotations.pkl">methodAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleComments.pkl">moduleComments.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleComments.pkl">moduleComments.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleExtend.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleExtend.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleExtend.pkl">moduleExtend.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleExtend.pkl">moduleExtend.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Pkl version:</dt>
|
<dt class="">Pkl version:</dt>
|
||||||
<dd>0.10.0 or higher</dd>
|
<dd>0.10.0 or higher</dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleInfoAnnotation.pkl">moduleInfoAnnotation.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleInfoAnnotation.pkl">moduleInfoAnnotation.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleMethodCommentInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleMethodCommentInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleMethodCommentInheritance.pkl">moduleMethodCommentInheritance.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleMethodCommentInheritance.pkl">moduleMethodCommentInheritance.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleMethodComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleMethodComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleMethodComments.pkl">moduleMethodComments.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleMethodComments.pkl">moduleMethodComments.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleMethodModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleMethodModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleMethodModifiers.pkl">moduleMethodModifiers.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleMethodModifiers.pkl">moduleMethodModifiers.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleMethodTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleMethodTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleMethodTypeAnnotations.pkl">moduleMethodTypeAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleMethodTypeAnnotations.pkl">moduleMethodTypeAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ the same module, a different module, and external modules.</p></div>
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleMethodTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleMethodTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleMethodTypeReferences.pkl">moduleMethodTypeReferences.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleMethodTypeReferences.pkl">moduleMethodTypeReferences.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/modulePropertyAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/modulePropertyAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/modulePropertyAnnotations.pkl">modulePropertyAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/modulePropertyAnnotations.pkl">modulePropertyAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/modulePropertyCommentInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/modulePropertyCommentInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/modulePropertyCommentInheritance.pkl">modulePropertyCommentInheritance.pkl</a></dd>
|
<dd><a href="https://example.com/package1/modulePropertyCommentInheritance.pkl">modulePropertyCommentInheritance.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/modulePropertyComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/modulePropertyComments.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/modulePropertyComments.pkl">modulePropertyComments.pkl</a></dd>
|
<dd><a href="https://example.com/package1/modulePropertyComments.pkl">modulePropertyComments.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
pkl-doc/src/test/files/DocGeneratorTest/output/com.package1/1.2.3/modulePropertyModifiers/index.html
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/modulePropertyModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/modulePropertyModifiers.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/modulePropertyModifiers.pkl">modulePropertyModifiers.pkl</a></dd>
|
<dd><a href="https://example.com/package1/modulePropertyModifiers.pkl">modulePropertyModifiers.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/modulePropertyTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/modulePropertyTypeAnnotations.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/modulePropertyTypeAnnotations.pkl">modulePropertyTypeAnnotations.pkl</a></dd>
|
<dd><a href="https://example.com/package1/modulePropertyTypeAnnotations.pkl">modulePropertyTypeAnnotations.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ the same module, a different module, and external modules.</p></div>
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/modulePropertyTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/modulePropertyTypeReferences.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/modulePropertyTypeReferences.pkl">modulePropertyTypeReferences.pkl</a></dd>
|
<dd><a href="https://example.com/package1/modulePropertyTypeReferences.pkl">modulePropertyTypeReferences.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleTypes1.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleTypes1.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleTypes1.pkl">moduleTypes1.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleTypes1.pkl">moduleTypes1.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/moduleTypes2.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/moduleTypes2.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/moduleTypes2.pkl">moduleTypes2.pkl</a></dd>
|
<dd><a href="https://example.com/package1/moduleTypes2.pkl">moduleTypes2.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/nested/nested2/nestedModule.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/nested/nested2/nestedModule.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/nested/nested2/nestedModule.pkl">nestedModule.pkl</a></dd>
|
<dd><a href="https://example.com/package1/nested/nested2/nestedModule.pkl">nestedModule.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/shared.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/shared.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/shared.pkl">shared.pkl</a></dd>
|
<dd><a href="https://example.com/package1/shared.pkl">shared.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/ternalPackage.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/ternalPackage.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/ternalPackage.pkl">ternalPackage.pkl</a></dd>
|
<dd><a href="https://example.com/package1/ternalPackage.pkl">ternalPackage.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/typeAliasInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/typeAliasInheritance.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/typeAliasInheritance.pkl">typeAliasInheritance.pkl</a></dd>
|
<dd><a href="https://example.com/package1/typeAliasInheritance.pkl">typeAliasInheritance.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/typealiases.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/typealiases.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/typealiases.pkl">typealiases.pkl</a></dd>
|
<dd><a href="https://example.com/package1/typealiases.pkl">typealiases.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/typealiases2.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/typealiases2.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/typealiases2.pkl">typealiases2.pkl</a></dd>
|
<dd><a href="https://example.com/package1/typealiases2.pkl">typealiases2.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/unionTypes.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/unionTypes.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/unionTypes.pkl">unionTypes.pkl</a></dd>
|
<dd><a href="https://example.com/package1/unionTypes.pkl">unionTypes.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/unlistedClass.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/unlistedClass.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/unlistedClass.pkl">unlistedClass.pkl</a></dd>
|
<dd><a href="https://example.com/package1/unlistedClass.pkl">unlistedClass.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/unlistedMethod.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/unlistedMethod.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/unlistedMethod.pkl">unlistedMethod.pkl</a></dd>
|
<dd><a href="https://example.com/package1/unlistedMethod.pkl">unlistedMethod.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">https://example.com/unlistedProperty.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">https://example.com/unlistedProperty.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/package1/unlistedProperty.pkl">unlistedProperty.pkl</a></dd>
|
<dd><a href="https://example.com/package1/unlistedProperty.pkl">unlistedProperty.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@
|
|||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">modulepath:/com/package2/Module3.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">modulepath:/com/package2/Module3.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/blob/4.5.6/Module3.pkl">Module3.pkl</a></dd>
|
<dd><a href="https://example.com/blob/4.5.6/Module3.pkl">Module3.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
+2
-2
@@ -28,9 +28,9 @@
|
|||||||
<div class="member-signature">open module <span class="name-decl">birds.Bird</span></div>
|
<div class="member-signature">open module <span class="name-decl">birds.Bird</span></div>
|
||||||
<dl class="member-info">
|
<dl class="member-info">
|
||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">package://localhost:12110/Bird.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">package://localhost:12110/birds@0.5.0#/Bird.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/birds/v0.5.0/blob/Bird.pkl">Bird.pkl</a></dd>
|
<dd><a href="https://example.com/birds/v0.5.0/blob/Bird.pkl">Bird.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+2
-2
@@ -28,9 +28,9 @@
|
|||||||
<div class="member-signature">module <span class="name-decl">birds.allFruit</span></div>
|
<div class="member-signature">module <span class="name-decl">birds.allFruit</span></div>
|
||||||
<dl class="member-info">
|
<dl class="member-info">
|
||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">package://localhost:12110/allFruit.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">package://localhost:12110/birds@0.5.0#/allFruit.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/birds/v0.5.0/blob/allFruit.pkl">allFruit.pkl</a></dd>
|
<dd><a href="https://example.com/birds/v0.5.0/blob/allFruit.pkl">allFruit.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+2
-2
@@ -28,9 +28,9 @@
|
|||||||
<div class="member-signature">module <span class="name-decl">birds.catalog</span></div>
|
<div class="member-signature">module <span class="name-decl">birds.catalog</span></div>
|
||||||
<dl class="member-info">
|
<dl class="member-info">
|
||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">package://localhost:12110/catalog.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">package://localhost:12110/birds@0.5.0#/catalog.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="">Source code:</dt>
|
<dt class="">Source code:</dt>
|
||||||
<dd><a href="https%3A//example.com/birds/v0.5.0/blob/catalog.pkl">catalog.pkl</a></dd>
|
<dd><a href="https://example.com/birds/v0.5.0/blob/catalog.pkl">catalog.pkl</a></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -28,7 +28,7 @@
|
|||||||
<div class="member-signature">module <span class="name-decl">fruit.Fruit</span></div>
|
<div class="member-signature">module <span class="name-decl">fruit.Fruit</span></div>
|
||||||
<dl class="member-info">
|
<dl class="member-info">
|
||||||
<dt class="">Module URI:</dt>
|
<dt class="">Module URI:</dt>
|
||||||
<dd><span class="import-uri">package://localhost:12110/Fruit.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
<dd><span class="import-uri">package://localhost:12110/fruit@1.1.0#/Fruit.pkl</span><i class="copy-uri-button material-icons">content_copy</i></dd>
|
||||||
<dt class="runtime-data hidden">Known subtypes:</dt>
|
<dt class="runtime-data hidden">Known subtypes:</dt>
|
||||||
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
<dd id="known-subtypes" class="runtime-data hidden"></dd>
|
||||||
<dt class="runtime-data hidden">Known usages:</dt>
|
<dt class="runtime-data hidden">Known usages:</dt>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
///
|
///
|
||||||
/// Warning: Although this module is ready for initial use,
|
/// Warning: Although this module is ready for initial use,
|
||||||
/// benchmark results may be inaccurate or inconsistent.
|
/// benchmark results may be inaccurate or inconsistent.
|
||||||
@ModuleInfo { minPklVersion = "0.25.2" }
|
@ModuleInfo { minPklVersion = "0.25.3" }
|
||||||
module pkl.Benchmark
|
module pkl.Benchmark
|
||||||
|
|
||||||
import "pkl:platform" as _platform
|
import "pkl:platform" as _platform
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user