[PR #980] Fix hash code computation of cyclical objects #837

Open
opened 2025-12-30 01:27:07 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/apple/pkl/pull/980
Author: @bioball
Created: 2/24/2025
Status: 🔄 Open

Base: mainHead: compute-cyclical-hash-codes


📝 Commits (2)

  • a26a38a Fix hash code computation of cyclical objects
  • a8b8c03 More optimized hashCode, wip

📊 Changes

24 files changed (+189 additions, -65 deletions)

View changed files

📝 pkl-core/src/main/java/org/pkl/core/runtime/StdLibModule.java (+3 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmClass.java (+0 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmDataSize.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmDuration.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmDynamic.java (+9 -2)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmIntSeq.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmList.java (+11 -3)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmListing.java (+4 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmMap.java (+8 -3)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmMapping.java (+4 -2)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmNull.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmObject.java (+6 -0)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmPair.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmRegex.java (+1 -1)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmSet.java (+11 -3)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmTyped.java (+5 -3)
📝 pkl-core/src/main/java/org/pkl/core/runtime/VmValue.java (+1 -1)
📝 pkl-core/src/test/files/LanguageSnippetTests/input/listings/hashCode.pkl (+14 -0)
📝 pkl-core/src/test/files/LanguageSnippetTests/input/mappings/hashCode.pkl (+14 -0)
📝 pkl-core/src/test/files/LanguageSnippetTests/input/objects/hashCode.pkl (+72 -38)

...and 4 more files

📄 Description

This fixes an issue where a cyclical object will stack overflow when computing its hash code.

Closes #979


🔄 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/980 **Author:** [@bioball](https://github.com/bioball) **Created:** 2/24/2025 **Status:** 🔄 Open **Base:** `main` ← **Head:** `compute-cyclical-hash-codes` --- ### 📝 Commits (2) - [`a26a38a`](https://github.com/apple/pkl/commit/a26a38ade54405e0463a78ab401a61cb89a79fb9) Fix hash code computation of cyclical objects - [`a8b8c03`](https://github.com/apple/pkl/commit/a8b8c03601dbed89c20a2e49a8826060f2388b94) More optimized hashCode, wip ### 📊 Changes **24 files changed** (+189 additions, -65 deletions) <details> <summary>View changed files</summary> 📝 `pkl-core/src/main/java/org/pkl/core/runtime/StdLibModule.java` (+3 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmClass.java` (+0 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmDataSize.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmDuration.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmDynamic.java` (+9 -2) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmIntSeq.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmList.java` (+11 -3) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmListing.java` (+4 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmMap.java` (+8 -3) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmMapping.java` (+4 -2) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmNull.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmObject.java` (+6 -0) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmPair.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmRegex.java` (+1 -1) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmSet.java` (+11 -3) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmTyped.java` (+5 -3) 📝 `pkl-core/src/main/java/org/pkl/core/runtime/VmValue.java` (+1 -1) 📝 `pkl-core/src/test/files/LanguageSnippetTests/input/listings/hashCode.pkl` (+14 -0) 📝 `pkl-core/src/test/files/LanguageSnippetTests/input/mappings/hashCode.pkl` (+14 -0) 📝 `pkl-core/src/test/files/LanguageSnippetTests/input/objects/hashCode.pkl` (+72 -38) _...and 4 more files_ </details> ### 📄 Description This fixes an issue where a cyclical object will stack overflow when computing its hash code. Closes #979 --- <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:27:07 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pkl#837