Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support WASM on Flutter web #1616

Closed
wants to merge 5 commits into from
Closed

Conversation

Rexios80
Copy link

@Rexios80 Rexios80 commented May 18, 2024

I tried to migrate this package to package:web but I ran into the following issue:

IsarError: DbError (10): disk I/O error
main.dart.mjs:56 at Error._throwWithCurrentStackTrace (http://localhost:59602/main.dart.wasm:wasm-function[915]:0xe32a7)
main.dart.mjs:56     at _extension#14|throwError (http://localhost:59602/main.dart.wasm:wasm-function[11616]:0x1b89b0)
main.dart.mjs:56     at _extension#14|checkNoError (http://localhost:59602/main.dart.wasm:wasm-function[11604]:0x1b8727)
main.dart.mjs:56     at new _IsarImpl.open (http://localhost:59602/main.dart.wasm:wasm-function[14711]:0x1f34a9)
main.dart.mjs:56     at Isar.open (http://localhost:59602/main.dart.wasm:wasm-function[14709]:0x1f32c9)
main.dart.mjs:56     at _CounterAppState.initState (http://localhost:59602/main.dart.wasm:wasm-function[5834]:0x139aa5)
main.dart.mjs:56     at StatefulElement._firstBuild (http://localhost:59602/main.dart.wasm:wasm-function[5833]:0x139a58)
main.dart.mjs:56     at ComponentElement.mount (http://localhost:59602/main.dart.wasm:wasm-function[5820]:0x13979d)
main.dart.mjs:56 Another exception was thrown: Instance of 'DiagnosticsProperty<void>'

This only happens when running with WASM enabled. It must be something to do with FFI, but looking into that is beyond my abilities. Any help with this would be appreciated. I tried to regenerate the FFI bindings but that failed as well probably due to environment config issues.

@nomad2569
Copy link

I tried building WASM with your branch, but I encountered the following error message. Is there any ideas?

Target dart2wasm failed: ProcessException: Process exited abnormally with exit code 64:
*NOTE*: Compilation to WasmGC is experimental.
The support may change, or be removed, with no advance notice.


Unhandled exception:
Constant InstanceConstant(const _FfiAbiSpecificMapping{_FfiAbiSpecificMapping.nativeTypes: const <Type?>[Int32, Int64, Int32, Int64, Int64, Int64, Int64,
Int64, Int32, Int64, Int64, Int32, Int64, Int32, Int64, Int32, Int64, Int64, Int64, Int64, Int32, Int64]}) references field
_FfiAbiSpecificMapping.nativeTypes which is not retained
#0      _TreeShakerConstantVisitor.visitInstanceConstant.<anonymous closure> (package:vm/transformations/type_flow/transformer.dart:2257)
#1      _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:633)
#2      _TreeShakerConstantVisitor.visitInstanceConstant (package:vm/transformations/type_flow/transformer.dart:2255)
#3      InstanceConstant.accept (package:kernel/ast.dart:14144)
#4      _TreeShakerConstantVisitor.analyzeConstant (package:vm/transformations/type_flow/transformer.dart:2190)
#5      _TreeShakerConstantVisitor.visitInstanceConstant.<anonymous closure> (package:vm/transformations/type_flow/transformer.dart:2260)
#6      _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:633)
#7      _TreeShakerConstantVisitor.visitInstanceConstant (package:vm/transformations/type_flow/transformer.dart:2255)
#8      InstanceConstant.accept (package:kernel/ast.dart:14144)
#9      _TreeShakerConstantVisitor.analyzeConstant (package:vm/transformations/type_flow/transformer.dart:2190)
#10     _TreeShakerPass1.visitConstant (package:vm/transformations/type_flow/transformer.dart:1558)
#11     ConstantExpression.transformOrRemoveChildren (package:kernel/ast.dart:8723)
#12     RemovingTransformer.defaultTreeNode (package:kernel/visitor.dart:2164)
#13     TreeVisitor1Default.defaultMember (package:kernel/visitor.dart:747)
#14     ExpressionVisitor1DefaultMixin.visitConstantExpression (package:kernel/visitor.dart:2368)
#15     ConstantExpression.accept1 (package:kernel/ast.dart:8707)
#16     RemovingTransformer.transformOrRemove (package:kernel/visitor.dart:1917)
#17     RemovingTransformer.transformList (package:kernel/visitor.dart:2141)
#18     RemovingTransformer.transformExpressionList (package:kernel/visitor.dart:2067)
#19     TreeShaker.addClassUsedInType (package:vm/transformations/type_flow/transformer.dart:878)
#20     _TreeShakerTypeVisitor.visitInterfaceType (package:vm/transformations/type_flow/transformer.dart:1098)
#21     InterfaceType.accept (package:kernel/ast.dart:11536)
#22     visitList (package:kernel/ast.dart:14913)
#23     FunctionType.visitChildren (package:kernel/ast.dart:11646)
#24     RecursiveVisitor.defaultNode (package:kernel/visitor.dart:1725)
#25     VisitorDefault.defaultDartType (package:kernel/visitor.dart:1524)
#26     DartTypeVisitorDefaultMixin.visitFutureOrType (package:kernel/visitor.dart:789)
#27     FunctionType.accept (package:kernel/ast.dart:11637)
#28     visitList (package:kernel/ast.dart:14913)
#29     InterfaceType.visitChildren (package:kernel/ast.dart:11545)
#30     _TreeShakerTypeVisitor.visitInterfaceType (package:vm/transformations/type_flow/transformer.dart:1099)
#31     InterfaceType.accept (package:kernel/ast.dart:11536)
#32     visitList (package:kernel/ast.dart:14913)
#33     InterfaceType.visitChildren (package:kernel/ast.dart:11545)
#34     _TreeShakerTypeVisitor.visitInterfaceType (package:vm/transformations/type_flow/transformer.dart:1099)
#35     InterfaceType.accept (package:kernel/ast.dart:11536)
#36     _TreeShakerPass1.visitDartType (package:vm/transformations/type_flow/transformer.dart:1247)
#37     VariableDeclaration.transformOrRemoveChildren (package:kernel/ast.dart:10817)
#38     RemovingTransformer.defaultTreeNode (package:kernel/visitor.dart:2164)
#39     TreeVisitor1Default.defaultMember (package:kernel/visitor.dart:747)
#40     StatementVisitor1DefaultMixin.visitVariableDeclaration (package:kernel/visitor.dart:2597)
#41     VariableDeclaration.accept1 (package:kernel/ast.dart:10795)
#42     RemovingTransformer.transformOrRemove (package:kernel/visitor.dart:1917)
#43     RemovingTransformer.transformList (package:kernel/visitor.dart:2141)
#44     RemovingTransformer.transformStatementList (package:kernel/visitor.dart:2095)
#45     AssertBlock.transformOrRemoveChildren (package:kernel/ast.dart:9311)
#46     RemovingTransformer.defaultTreeNode (package:kernel/visitor.dart:2164)
#47     TreeVisitor1Default.defaultMember (package:kernel/visitor.dart:747)
#48     StatementVisitor1DefaultMixin.visitBlock (package:kernel/visitor.dart:2546)
#49     Block.accept1 (package:kernel/ast.dart:9250)
#50     RemovingTransformer.transform (package:kernel/visitor.dart:1881)
#51     BlockExpression.transformOrRemoveChildren (package:kernel/ast.dart:8853)
#52     RemovingTransformer.defaultTreeNode (package:kernel/visitor.dart:2164)
#53     TreeVisitor1Default.defaultMember (package:kernel/visitor.dart:747)
#54     ExpressionVisitor1DefaultMixin.visitBlockExpression (package:kernel/visitor.dart:2402)
#55     BlockExpression.accept1 (package:kernel/ast.dart:8835)
#56     RemovingTransformer.transformOrRemove (package:kernel/visitor.dart:1917)
#57     RemovingTransformer.transformOrRemoveExpression (package:kernel/visitor.dart:1890)
#58     Field.transformOrRemoveChildren (package:kernel/ast.dart:2559)
#59     _TreeShakerPass1.visitField (package:vm/transformations/type_flow/transformer.dart:1319)
#60     Field.accept1 (package:kernel/ast.dart:2530)
#61     RemovingTransformer.transformOrRemove (package:kernel/visitor.dart:1917)
#62     RemovingTransformer.transformList (package:kernel/visitor.dart:2141)
#63     RemovingTransformer.transformFieldList (package:kernel/visitor.dart:2041)
#64     Library.transformOrRemoveChildren (package:kernel/ast.dart:626)
#65     RemovingTransformer.defaultTreeNode (package:kernel/visitor.dart:2164)
#66     TreeVisitor1DefaultMixin.visitLibrary (package:kernel/visitor.dart:680)
#67     Library.accept1 (package:kernel/ast.dart:588)
#68     RemovingTransformer.transformOrRemove (package:kernel/visitor.dart:1917)
#69     RemovingTransformer.transformList (package:kernel/visitor.dart:2141)
#70     RemovingTransformer.transformLibraryList (package:kernel/visitor.dart:1960)
#71     Component.transformOrRemoveChildren (package:kernel/ast.dart:14779)
#72     _TreeShakerPass1.transformComponent (package:vm/transformations/type_flow/transformer.dart:1156)
#73     TreeShaker.transformComponent (package:vm/transformations/type_flow/transformer.dart:831)
#74     transformComponent (package:vm/transformations/type_flow/transformer.dart:134)
#75     compileToModule (package:dart2wasm/compile.dart:156)
<asynchronous suspension>
#76     generateWasm (package:dart2wasm/generate_wasm.dart:24)
<asynchronous suspension>
#77     main (file:///Volumes/Work/s/w/ir/x/w/sdk/pkg/dart2wasm/bin/dart2wasm.dart:10)
<asynchronous suspension>

Simillar to following issues

ryanheise/just_audio#1127
rive-app/rive-flutter#391

@Rexios80 Rexios80 closed this Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants