[record_use] Semantic equality (#2927) This CL introduces a semantic equality for record-use files. Moreover, it copies all the current dart2js emitted files in and runs the semantic equality on VM and dart2js outputs. There are many differences: * Files with unsupported features in dart2js are skipped, and annotated with tracking issues. * Other differences between compilers are mapped. Copying the current dart2js expect files validates that we can merge the expect files for the VM and dart2js in the Dart SDK with the new semanticEquals method (https://github.com/dart-lang/native/issues/2885). (We probably want to delete most of the checked in files again at some point, and replace them with a handful that cover all syntax/semantics, or using the Dart API instead of using the json serialization. But for now this is the quickest way to validate the semantic equality is doing the right thing and being explicit about what features are missing.) Closes: https://github.com/dart-lang/native/issues/2897
This repository is home to Dart packages related to FFI and native assets building and bundling.
See the doc directory for more documentation.
| Package | Description | Issues | Version |
|---|---|---|---|
| code_assets | This package contains the Dart API for code assets in hook/build.dart and hook/link.dart. | ||
| data_assets | This package contains the Dart API for data assets in hook/build.dart and hook/link.dart. | ||
| ffi | Utilities for working with Foreign Function Interface (FFI) code. | ||
| ffigen | Generator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files. | ||
| hooks | This package contains the API for hook/build.dart and hook/link.dart. | ||
| hooks_runner | This package is the backend that invokes hook/build.dart and hook/link.dart from Dart and Flutter. | ||
| jni | A library to access JNI from Dart and Flutter that acts as a support library for package:jnigen. | ||
| jnigen | A Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine. | ||
| native_doc_dartifier | A library that converts code snippets from other languages into Dart. | ||
| native_toolchain_c | A library to invoke the native C compiler installed on the host machine. | ||
| objective_c | A library to access Objective C from Flutter that acts as a support library for package:ffigen. | ||
| swift2objc | A tool for generating bindings that allow interop between Dart and Swift code. | ||
| swiftgen | A tool for generating bindings that allow interop between Dart and Swift code. |
Packages not on this repo but also related to FFI and native assets. ❤️
| Package | Description | Version |
|---|---|---|
| native_toolchain_cmake | A library to invoke CMake for Dart Native Assets. | |
| native_toolchain_go | A library to invoke the native Go compiler installed on the host machine. | |
| native_toolchain_rust | A library to invoke the native Rust compiler installed on the host machine. | |
| native_toolchain_rs | A library to build and bundle Rust code for Dart Native Assets. |
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
For additional information about contributing, see our contributing page.