Conversation
|
@hackwaly is attempting to deploy a commit to the oboard's projects Team on Vercel. A member of the Team first needs to authorize it. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi! I'm @hackwaly, a MoonBit core developer.
We deprecated
Arrayat the JavaScript FFI boundary ahead of the planned changeto
Array's runtime layout, and I'm going through the ecosystem to help packagesmigrate before that lands. This PR does that for this repo.
Disclosure: AI assistance was used to scan the ecosystem for affected
declarations and prepare this patch. I reviewed the resulting diff. Please
double-check anything that looks off.
Background
On the JS backend,
Array[T]andFixedArray[T]are both plain JS arrays today.This migration removes reliance on that shared representation: once
Array'sruntime layout changes, an
extern "js"declared in terms ofArraywill nolonger line up with the plain arrays JavaScript produces or expects.
FixedArrayis the representation we ask FFI code to use.
moon check --target jsreportsWarning: [0020] Warning (deprecated): Using 'Array' in JavaScript FFI is deprecated. Use 'FixedArray' instead.for thedeclarations below. The scanner also migrated nested occurrences such as
Nullable[Array[T]]or(Array[T]) -> U, which do not trigger the same warningbut sit on the same boundary.
Changes
Each migrated FFI keeps its JavaScript body unchanged. The boundary now uses
FixedArray, and a thin wrapper keeps the original signature and converts, so nocall site and no public signature changes.
Declarations touched:
__ws_state_js_export_ffiFiles:
mocket.js.mbtVerification
moon check --target js— 0[0020]warnings for the touched files, 0 errors.moon test --target js— 101 passed, 0 failed.The JS bodies are unchanged; only the boundary type and the wrapper are new.