[PR #449] [MERGED] Fix globbed read/import bugs #560

Closed
opened 2025-12-30 01:25:20 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/apple/pkl/pull/449
Author: @odenix
Created: 4/24/2024
Status: Merged
Merged: 6/4/2024
Merged by: @bioball

Base: mainHead: fix-glob


📝 Commits (8)

  • f5042c8 Split MemberNode into (Regular/Shared)MemberNode
  • 879d853 Invert shouldRunTypeCheck to match its name
  • 8742111 Introduce VmObjectBuilder
  • a8b7047 Improve implementation of globbed read/import nodes
  • 5b9e27d Simplify code
  • f307a45 Fix ClassCastException when reflecting on globbed import
  • 5fba868 Fix caching of globbed reads
  • e2a4604 Address comments per review

📊 Changes

39 files changed (+721 additions, -500 deletions)

View changed files

📝 pkl-core/src/main/java/org/pkl/core/ast/MemberNode.java (+6 -24)
📝 pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java (+2 -4)
📝 pkl-core/src/main/java/org/pkl/core/ast/expression/unary/AbstractImportNode.java (+5 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/expression/unary/AbstractReadNode.java (+14 -11)
pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportGlobMemberBodyNode.java (+67 -0)
📝 pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportGlobNode.java (+50 -71)
📝 pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportNode.java (+1 -3)
pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ReadGlobMemberBodyNode.java (+52 -0)
📝 pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ReadGlobNode.java (+63 -68)
pkl-core/src/main/java/org/pkl/core/ast/expression/unary/StaticReadNode.java (+0 -50)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/FunctionNode.java (+1 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/LocalTypedPropertyNode.java (+1 -2)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/ObjectMethodNode.java (+1 -2)
pkl-core/src/main/java/org/pkl/core/ast/member/RegularMemberNode.java (+52 -0)
pkl-core/src/main/java/org/pkl/core/ast/member/SharedMemberNode.java (+64 -0)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/TypeCheckedPropertyNode.java (+3 -4)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/TypedPropertyNode.java (+2 -3)
📝 pkl-core/src/main/java/org/pkl/core/ast/member/UntypedObjectMemberNode.java (+1 -2)
📝 pkl-core/src/main/java/org/pkl/core/runtime/ModuleCache.java (+3 -4)
📝 pkl-core/src/main/java/org/pkl/core/runtime/ModuleInfo.java (+3 -7)

...and 19 more files

📄 Description

This PR fixes several bugs related to globbed reads/imports and makes code improvements along the way.

Bug fixes:

  • Fix caching of globbed reads
    • Glob pattern isn't guaranteed to be a constant
    • Both glob resolution and ResolvedGlobElement.getPath() depend on the current module URI
  • Fix ClassCastException when reflecting on globbed import
  • Avoid creating an unbounded number of Truffle root nodes per globbed read/import

See commit messages for further details.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/apple/pkl/pull/449 **Author:** [@odenix](https://github.com/odenix) **Created:** 4/24/2024 **Status:** ✅ Merged **Merged:** 6/4/2024 **Merged by:** [@bioball](https://github.com/bioball) **Base:** `main` ← **Head:** `fix-glob` --- ### 📝 Commits (8) - [`f5042c8`](https://github.com/apple/pkl/commit/f5042c85bdc0e103f525a8b306e746256337689a) Split MemberNode into (Regular/Shared)MemberNode - [`879d853`](https://github.com/apple/pkl/commit/879d853941b0196c4ad5da0953eabd0d1489c857) Invert shouldRunTypeCheck to match its name - [`8742111`](https://github.com/apple/pkl/commit/87421114eb5bcfa6bf3951780fa17783605f0e10) Introduce VmObjectBuilder - [`a8b7047`](https://github.com/apple/pkl/commit/a8b7047e828ace5199627909c757430c7e53142d) Improve implementation of globbed read/import nodes - [`5b9e27d`](https://github.com/apple/pkl/commit/5b9e27ded08f0ad951801cfb8af96cc8c337ffb1) Simplify code - [`f307a45`](https://github.com/apple/pkl/commit/f307a45859a46de6ca376f0a00b408f34b044c2a) Fix ClassCastException when reflecting on globbed import - [`5fba868`](https://github.com/apple/pkl/commit/5fba86890096ec1207ec75cf996dede0a51f01f7) Fix caching of globbed reads - [`e2a4604`](https://github.com/apple/pkl/commit/e2a46043205597b355f8164c7a657ef77385c86b) Address comments per review ### 📊 Changes **39 files changed** (+721 additions, -500 deletions) <details> <summary>View changed files</summary> 📝 `pkl-core/src/main/java/org/pkl/core/ast/MemberNode.java` (+6 -24) 📝 `pkl-core/src/main/java/org/pkl/core/ast/builder/AstBuilder.java` (+2 -4) 📝 `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/AbstractImportNode.java` (+5 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/AbstractReadNode.java` (+14 -11) ➕ `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportGlobMemberBodyNode.java` (+67 -0) 📝 `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportGlobNode.java` (+50 -71) 📝 `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportNode.java` (+1 -3) ➕ `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ReadGlobMemberBodyNode.java` (+52 -0) 📝 `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ReadGlobNode.java` (+63 -68) ➖ `pkl-core/src/main/java/org/pkl/core/ast/expression/unary/StaticReadNode.java` (+0 -50) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/FunctionNode.java` (+1 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/LocalTypedPropertyNode.java` (+1 -2) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/ObjectMethodNode.java` (+1 -2) ➕ `pkl-core/src/main/java/org/pkl/core/ast/member/RegularMemberNode.java` (+52 -0) ➕ `pkl-core/src/main/java/org/pkl/core/ast/member/SharedMemberNode.java` (+64 -0) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/TypeCheckedPropertyNode.java` (+3 -4) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/TypedPropertyNode.java` (+2 -3) 📝 `pkl-core/src/main/java/org/pkl/core/ast/member/UntypedObjectMemberNode.java` (+1 -2) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/ModuleCache.java` (+3 -4) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/ModuleInfo.java` (+3 -7) _...and 19 more files_ </details> ### 📄 Description This PR fixes several bugs related to globbed reads/imports and makes code improvements along the way. Bug fixes: * Fix caching of globbed reads * Glob pattern isn't guaranteed to be a constant * Both glob resolution and `ResolvedGlobElement.getPath()` depend on the current module URI * Fix `ClassCastException` when reflecting on globbed import * Avoid creating an unbounded number of Truffle root nodes per globbed read/import See commit messages for further details. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-30 01:25:20 +01:00
adam closed this issue 2025-12-30 01:25:20 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pkl#560