Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

Initial code generator support draft #19

Merged
merged 32 commits into from
Aug 25, 2022

Conversation

mahesh-hegde
Copy link
Contributor

@mahesh-hegde mahesh-hegde commented Aug 10, 2022

This PR adds initial support for code generator.

There are 2 parts;

* ApiSummarizer: Java component that generates JSON representation of Java APIs.
* jni_gen: takes JSON and generates code based on it.

test package is in jni_gen_test, which tests generating code for a very simple java class.

Locally I am able to generate code for some PDFBox classes and some packages from android libraries as well. Still contemplating how to add these to CI. PDFBox requires 5-6 jar dependencies to be downloaded from apache and bouncy castle sites. Looking for a way to automate it with maven or something. Similarly android-stubs-src.jar from SDK-28 is the one working with Android libraries.

TODO: (Before merging this PR)

  • How to add a LICENSE to ApiSummarizer? It depends on some JDK APIs, should it be GPL?

@coveralls
Copy link

Pull Request Test Coverage Report for Build 2831694928

  • -301 of 349 (13.75%) changed or added relevant lines in 8 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-23.1%) to 34.918%

Changes Missing Coverage Covered Lines Changed/Added Lines %
jni/lib/src/jni_exceptions.dart 0 1 0.0%
jni_gen/lib/src/util/name_utils.dart 4 12 33.33%
jni/lib/src/jni.dart 6 15 40.0%
jni_gen/lib/src/util/rename_conflict.dart 0 10 0.0%
jni_gen/lib/src/bindings/symbol_resolver.dart 36 47 76.6%
jni/lib/src/jl_object.dart 0 21 0.0%
jni_gen/lib/src/elements/elements.dart 2 71 2.82%
jni_gen/lib/src/elements/elements.g.dart 0 172 0.0%
Totals Coverage Status
Change from base Build 2723959478: -23.1%
Covered Lines: 235
Relevant Lines: 673

💛 - Coveralls

@coveralls
Copy link

coveralls commented Aug 10, 2022

Pull Request Test Coverage Report for Build 2920439553

  • 754 of 985 (76.55%) changed or added relevant lines in 20 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+20.8%) to 78.903%

Changes Missing Coverage Covered Lines Changed/Added Lines %
jni/lib/src/jni_exceptions.dart 0 1 0.0%
jni_gen/lib/src/bindings/symbol_resolver.dart 49 51 96.08%
jni_gen/lib/src/bindings/preprocessor.dart 38 41 92.68%
jni_gen/lib/src/writers/callback_writer.dart 0 3 0.0%
jni_gen/lib/src/writers/files_writer.dart 65 69 94.2%
jni_gen/lib/src/bindings/c_bindings.dart 161 166 96.99%
jni_gen/lib/src/bindings/common.dart 21 26 80.77%
jni_gen/lib/src/config/summary_source.dart 21 26 80.77%
jni_gen/lib/src/bindings/dart_bindings.dart 177 183 96.72%
jni_gen/lib/src/util/name_utils.dart 5 11 45.45%
Totals Coverage Status
Change from base Build 2723959478: 20.8%
Covered Lines: 748
Relevant Lines: 948

💛 - Coveralls

@mahesh-hegde mahesh-hegde marked this pull request as ready for review August 10, 2022 10:13
* add excludeAll method
* write javadoc comments
@dcharkes
Copy link
Contributor

  • How to add a LICENSE to ApiSummarizer? It depends on some JDK APIs, should it be GPL?

I believe this is the case. See https://www.gnu.org/licenses/gpl-faq.en.html#IfLibraryIsGPL. This is why LGPL was invented, it allows linking/importing a LGPL library in non-LGPL code. If the APIs are GPL, we are out of luck and have to use GPL. cc @mit-mit.
(This is hairy, if we load a .jar in a Java VM that we spun up with dart:ffi & JNI, is that considered linking as well? In that case the GPL would spill to this whole package. Maybe then it is a good thing that the API summarizer is Java and standalone. Then the Dart program that takes the summary doesn't have to link to that, and that can then be released under the Dart license.)

@devoncarew we're adding Java code to a Dart package. Do we have a practise for what Java package name to use? Something like dev.pub.jni_gen.<...>? Or com.github.dart_lang.jni_gen.<...> (In the Flutter plugins we have com.example.<package-name> which gives no guidance to the user.)

Copy link
Contributor

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First round of comments. I'll take a look at the Java code later.

jni_gen_test/.gitignore Outdated Show resolved Hide resolved
jni_gen_test/run_tests.sh Outdated Show resolved Hide resolved
jni_gen_test/run_tests.sh Outdated Show resolved Hide resolved
jni_gen_test/test/jni_gen_test_test.dart Outdated Show resolved Hide resolved
jni_gen_test/lib/dev/dart/jni_gen_test.dart Outdated Show resolved Hide resolved
jni_gen_test/java/dev/dart/jni_gen_test/Example.java Outdated Show resolved Hide resolved
jni_gen_test/tool/gen.dart Outdated Show resolved Hide resolved
jni_gen/bin/build_summarizer.dart Outdated Show resolved Hide resolved
jni_gen/bin/build_summarizer.dart Outdated Show resolved Hide resolved
jni_gen/cmake/CMakeLists.txt.tmpl Show resolved Hide resolved
@dcharkes
Copy link
Contributor

Super cool stuff! 🔥 🎸 🚀

@mahesh-hegde
Copy link
Contributor Author

The doclet API has same license as rest of the java standard library, for example compare java.io.FileOutputStream and jdk.javadoc.doclet.Doclet.

On surface, we are using an API with classpath exception. However, the API calls the javadoc tool itself, I am not sure if such use is covered under classpath exception or not.

It's possible I am being overly cautious. There are some uses similar to ours covered under permissive licenses.

Selenium
Scala SBT

jni_gen/lib/src/run_task.dart Outdated Show resolved Hide resolved
jni_gen/lib/src/util/find_package.dart Outdated Show resolved Hide resolved
jni_gen/lib/src/util/name_utils.dart Outdated Show resolved Hide resolved
jni_gen/lib/src/util/name_utils.dart Show resolved Hide resolved
jni_gen/lib/src/util/rename_conflict.dart Show resolved Hide resolved
jni_gen/third_party/ApiSummarizer/todo.md Outdated Show resolved Hide resolved
Copy link
Contributor

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super nice to play around with the summarizer! 🚀

More comments 😄

* jni_gen:setup - rebuild ApiSummarizer if dependency is updated
* remove qualifiedName and internalName from summary
* log final summarizer command to stdout
* add dart keywords to rename_conflicts.dart
* document ApiSummarizer
* Add some JUnit4 tests to ApiSummarizer
* Remove redundant CLI options
* Make ASM backend work in simple cases
* Remove unused methods
* Rename integration tests from sample to simple_package
@mahesh-hegde
Copy link
Contributor Author

Hi, I think I implemented most of the suggestions. What do we do about the license?

@dcharkes
Copy link
Contributor

Hi, I think I implemented most of the suggestions. What do we do about the license?

Java code GPL. And it has to stay in third_party.

The generator can be the Dart license. It is very handy that we have the summarizer as a separate program now. Because we don't link it from the Dart, we just invoke it with Process.run or some other script.

@dcharkes
Copy link
Contributor

dcharkes commented Aug 18, 2022

Is there any google repo with GPL as a reference for how to add GPL license to ApiSummarizer files? The FSF website makes it quite long and confusing.

I'm not aware of any Google repo.

But, GitHub has a nifty search tool. To find repos that have Java and the GPL license: https://github.com/search?q=stars%3A%3E10000+language%3AJava+license%3Agpl&type=Repositories&ref=advsearch&l=Java&l=

Probably:

  • LICENSE file in jni_gen/third_party/ApiSummarizer/LICENSE
  • And then in every source file:
/*
 * Copyright 2022, the Dart project authors.
 * This project is distributed under the GPLv3 license.
 * This is a Copyleft license that gives the user the right to use, 
 * copy and modify the code freely for non-commercial purposes.
 */

cc @mit-mit

* Add issue references to TODOs
* rename few enums to match their java equivalent
@dcharkes
Copy link
Contributor

@mahesh-hegde

I asked the experts about the licensing.

Our obligation to make the complete corresponding source code of a program available to end users as open source only triggers if we are distributing compiled software. If we are just publishing source code and are not distributing anything compiled, there should be no copyleft virality concerns.

Currently we are only distributing source, but we might want to distribute precompiled binaries at some point. So, GPLv2 applies.

The BSD is recognized by GNU/FSF/SFC as a GPLv2-compatible license. This is because compliance with the GPLv2 automatically satisfies compliance with the BSD-3 license, so if I distribute an application that depends on a GPLv2 licensed library, and I distribute the complete corresponding source code for that application, applying the GPLv2 license to the third-party GPLv2 files that I used, and applying the BSD license to all of the other code, this gives end users/the public all of the permissions they need to rebuild that application and to distribute it as a whole under the terms of the GPLv2 license.

So, we can release the Java code under the Dart BSD license. Which also means it doesn't have to live in the third_party folder.

Sorry for asking to change it again, 😅 we're all learning here! 😸

While you're at updating the folder and license, please also change the java package name to com.github.dart_lang.jni_gen.apisummarizer (Note dart-lang becomes dart_lang as per https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html)

Looks good to me, as long as all the TODOs have github issues.

Please also update the TODOs to point to GitHub issues.

@mahesh-hegde
Copy link
Contributor Author

Re: package name in java

In the Android package:jni we need a java plugin class to init the JNI. There I used dev.dart.jni as package name since dart.dev seems to be official website. Should I update that too?

@dcharkes
Copy link
Contributor

Re: package name in java

In the Android package:jni we need a java plugin class to init the JNI. There I used dev.dart.jni as package name since dart.dev seems to be official website. Should I update that too?

Yes, lets keep it consistent.

And yes, this is a dart-lang package, but it is not part of the Dart SDK. So I'm not sure if dev.dart makes sense.

* Rename parameters in C code when they clash with C keywords
* Improve PackagePathResolver
* Make run() as method on JniGenTask, and add dumpJson parameter
* Add returnType to javaSig property, (otherwise some methods can be falsely overridden).
* Add test to generate bindings for complete jackson-core and analyze.
@mahesh-hegde
Copy link
Contributor Author

Added copyright notices to files in jni_gen/.

I am leaving the jni/ folder currently because I have another branch with some changes and don't want extra merge / rebase conflicts.

Copy link
Contributor

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mahesh-hegde please address these comments first so that we can merge this PR (instead of tagging new features on to this PR).

As mentioned before:

  • Please file github issues for all open TODOs.
  • All generated files require a copyright/license from the source file.

@mahesh-hegde
Copy link
Contributor Author

mahesh-hegde commented Aug 23, 2022 via email

@dcharkes
Copy link
Contributor

Yes I am planning to put the examples in follow up PR. But can the disasm java code stay?

I think it is bad practise to land code that is not used. What is the problem with adding it in the next PR?

@mahesh-hegde
Copy link
Contributor Author

mahesh-hegde commented Aug 23, 2022 via email

Copy link
Contributor

@dcharkes dcharkes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A ton of small comments, but no larger concerns anymore.

jni/analysis_options.yaml Outdated Show resolved Hide resolved
jni/lib/src/jl_object.dart Outdated Show resolved Hide resolved
jni/lib/src/jl_object.dart Outdated Show resolved Hide resolved
jni/lib/src/jni.dart Outdated Show resolved Hide resolved
jni_gen/analysis_options.yaml Outdated Show resolved Hide resolved
jni_gen/test/jackson_core_test/generate.dart Show resolved Hide resolved
jni_gen/test/jackson_core_test/third_party/src/dartjni.h Outdated Show resolved Hide resolved
jni_gen/test/jackson_core_test/third_party/src/dartjni.h Outdated Show resolved Hide resolved
jni_gen/test/jackson_core_test/third_party/src/dartjni.h Outdated Show resolved Hide resolved
@dcharkes dcharkes merged commit 45b4227 into dart-archive:main Aug 25, 2022
@mahesh-hegde mahesh-hegde deleted the add_jni_gen branch September 22, 2022 11:53
HosseinYousefi pushed a commit to dart-lang/native that referenced this pull request Nov 16, 2023
copybara-service bot pushed a commit to dart-lang/sdk that referenced this pull request Nov 19, 2023
Changes:
```
> git log --format="%C(auto) %h %s" eaea725..5dca10e
 https://dart.googlesource.com/native.git/+/5dca10ea [style] Enable `dangling_library_doc_comments` lint (809)
 https://dart.googlesource.com/native.git/+/4179fbd1 Merge pull request 545 from dart-lang/merge-jnigen
 https://dart.googlesource.com/native.git/+/9d35138f Merge package:jni and package:jnigen into shared native repository
 https://dart.googlesource.com/native.git/+/37789d66 [jnigen] Add paths to github workflow
 https://dart.googlesource.com/native.git/+/05994dd7 [jnigen] Fix beta CI and print the analyzer failures (https://github.com/dart-lang/jnigen/issues/418)
 https://dart.googlesource.com/native.git/+/3f34c6cd [jnigen] Reformat with the latest version of dart format (https://github.com/dart-lang/jnigen/issues/417)
 https://dart.googlesource.com/native.git/+/c64e9c87 [ffigen] Stable release 10.0.0 (202)
 https://dart.googlesource.com/native.git/+/e3e63406 [ffigen] Update urls after repo merge (203)
 https://dart.googlesource.com/native.git/+/b90e4e83 update the package markdown table; update the issue templates (197)
 https://dart.googlesource.com/native.git/+/c0018281 update repo references from the move (198)
 https://dart.googlesource.com/native.git/+/29e423c7 Merge pull request 185 from dart-lang/merge-ffigen-package
 https://dart.googlesource.com/native.git/+/ff474966 Switch publish workflow to use the beta SDK
 https://dart.googlesource.com/native.git/+/36342298 Merge package:ffigen into dart-lang/native
 https://dart.googlesource.com/native.git/+/85e4257b [ffigen] Change ffigen to use dart-lang/native's directory stucture
 https://dart.googlesource.com/native.git/+/1920cc98 [ffigen] Prepare for merge into dart-lang/native (641)
 https://dart.googlesource.com/native.git/+/69c3e21e [jnigen] Fix buffer overflow issue when converting strings from JNI to Dart (https://github.com/dart-lang/jnigen/issues/416)
 https://dart.googlesource.com/native.git/+/b4a59e2e [jnigen] Remove macos plugin from package:jni (https://github.com/dart-lang/jnigen/issues/415)
 https://dart.googlesource.com/native.git/+/8974cb0b [jnigen] Bump actions/checkout from 4.1.0 to 4.1.1 (https://github.com/dart-lang/jnigen/issues/412)
 https://dart.googlesource.com/native.git/+/2491826d [ffigen] ObjC static functions (633)
 https://dart.googlesource.com/native.git/+/e2d6f4c9 [ffigen] Bump actions/checkout from 4.1.0 to 4.1.1 (636)
 https://dart.googlesource.com/native.git/+/bf2e60dd [ffigen] Bump dart-lang/setup-dart from 1.5.1 to 1.6.0 (637)
 https://dart.googlesource.com/native.git/+/9dcd6ef6 [ffigen] Bump subosito/flutter-action from 2.10.0 to 2.12.0 (638)
 https://dart.googlesource.com/native.git/+/039040ec [jnigen] Bump subosito/flutter-action from 2.10.0 to 2.12.0 (https://github.com/dart-lang/jnigen/issues/411)
 https://dart.googlesource.com/native.git/+/0d205b90 [ffigen] Fix generated asset/assetId property for ffi-native (634)
 https://dart.googlesource.com/native.git/+/8aeb62c9 [ffigen] Use getDartType rather than getFfiDartType in ObjC block codegen (632)
 https://dart.googlesource.com/native.git/+/86abba53 [ffigen] Enable use_super_parameters lint (631)
 https://dart.googlesource.com/native.git/+/f2a82d87 [jnigen] Bump actions/checkout from 3.6.0 to 4.1.0 (https://github.com/dart-lang/jnigen/issues/404)
 https://dart.googlesource.com/native.git/+/8b765d73 [ffigen] Typedefs for Dart types (625)
 https://dart.googlesource.com/native.git/+/c71d38bd [ffigen] Refactor `sameFfiDartAndCType` to not require a `Writer` (629)
 https://dart.googlesource.com/native.git/+/0f1ed374 [ffigen] Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (627)
 https://dart.googlesource.com/native.git/+/4b6894f5 [ffigen] Bump actions/checkout from 3.6.0 to 4.1.0 (626)
 https://dart.googlesource.com/native.git/+/f2b92916 [ffigen] Bump coverallsapp/github-action from 2.2.1 to 2.2.3 (628)
 https://dart.googlesource.com/native.git/+/abcebe00 [jnigen] Bump coverallsapp/github-action from 2.2.1 to 2.2.3 (https://github.com/dart-lang/jnigen/issues/403)
 https://dart.googlesource.com/native.git/+/917ed4d2 [jnigen] Bump actions/setup-java from 3.12.0 to 3.13.0 (https://github.com/dart-lang/jnigen/issues/402)
 https://dart.googlesource.com/native.git/+/24d7b679 [ffigen] Handle ObjC nullable annotations (624)
 https://dart.googlesource.com/native.git/+/8456a7c3 [jnigen] Add `JLazyReference` and `JFinalString` (https://github.com/dart-lang/jnigen/issues/400)
 https://dart.googlesource.com/native.git/+/5c7b78c3 [ffigen] Separate getDartType and getUserType (623)
 https://dart.googlesource.com/native.git/+/266ab71c [jnigen] Use Dart 3 class modifiers in `package:jni` (https://github.com/dart-lang/jnigen/issues/398)
 https://dart.googlesource.com/native.git/+/cb147547 [ffigen] Better typedefs for `NativeFunction`s (621)
 https://dart.googlesource.com/native.git/+/9fafeacb [jnigen] Convert incorrect exceptions into errors (https://github.com/dart-lang/jnigen/issues/397)
 https://dart.googlesource.com/native.git/+/f3b2369b [ffigen] Simplify flutter_plugin_ffi_test (620)
 https://dart.googlesource.com/native.git/+/e8e0a98e [jnigen] Add `JBuffer`, `JByteBuffer` to enable fast copying to and from `Uint8List` (https://github.com/dart-lang/jnigen/issues/390)
 https://dart.googlesource.com/native.git/+/e0b74862 [ffigen] Fix ObjC `instancetype` inheritance issue. (618)
 https://dart.googlesource.com/native.git/+/eb49cbab [jnigen] Add `ignore_for_file: lines_longer_than_80_chars` to generated files (https://github.com/dart-lang/jnigen/issues/386)
 https://dart.googlesource.com/native.git/+/619b5023 [jnigen] Add correct cast to interface method invocation (https://github.com/dart-lang/jnigen/issues/385)
 https://dart.googlesource.com/native.git/+/4e53697f [ffigen] Better block names (606)
 https://dart.googlesource.com/native.git/+/1e1eeee8 [ffigen] Use stret and fpret variants of objc_msgSend where appropriate (613)
 https://dart.googlesource.com/native.git/+/1d469856 [jnigen] Specify JDK min and max version in README (https://github.com/dart-lang/jnigen/issues/384)
 https://dart.googlesource.com/native.git/+/908ae22f [ffigen] Merge pull request 610 from dart-lang/roll-stable-to-9.0.1
 https://dart.googlesource.com/native.git/+/fa984640 [ffigen] Bump actions/checkout from 3.5.3 to 3.6.0 (611)
 https://dart.googlesource.com/native.git/+/6606892f [jnigen] jni-0.6.1 fix number of topics (https://github.com/dart-lang/jnigen/issues/382)
 https://dart.googlesource.com/native.git/+/35d75221 [jnigen] Bump actions/checkout from 3.5.3 to 3.6.0 (https://github.com/dart-lang/jnigen/issues/381)
 https://dart.googlesource.com/native.git/+/7684bdb8 [jnigen] Configure autopublishing (https://github.com/dart-lang/jnigen/issues/380)
 https://dart.googlesource.com/native.git/+/1176680a [ffigen] Merge commit 'ac1b0498ecc81ef4f358c4fc93c770c7ff07d9a6' into stable
 https://dart.googlesource.com/native.git/+/79e36f0a [ffigen] Fix 577 (609)
 https://dart.googlesource.com/native.git/+/2042ea0b [ffigen] fix: objc block trampoline invalid return type (607)
 https://dart.googlesource.com/native.git/+/92d51378 [ffigen] Fix null inference weirdness (605)
 https://dart.googlesource.com/native.git/+/e0814e1a [ffigen] Listener/Async Blocks (601)
 https://dart.googlesource.com/native.git/+/bd8aae49 [jnigen] Rename `delete` to `release` (https://github.com/dart-lang/jnigen/issues/379)
 https://dart.googlesource.com/native.git/+/244596e9 [jnigen] Throw DartExceptions in Java (https://github.com/dart-lang/jnigen/issues/376)
 https://dart.googlesource.com/native.git/+/128d61ec [ffigen] Mention installing xcode command line tools on mac
 https://dart.googlesource.com/native.git/+/b7cc0489 [jnigen] Run Java GC using jcmd in tests (https://github.com/dart-lang/jnigen/issues/371)
 https://dart.googlesource.com/native.git/+/95c8375a [jnigen] Finalize interfaces in Java (https://github.com/dart-lang/jnigen/issues/369)
 https://dart.googlesource.com/native.git/+/4f85cedc [jnigen] Add tests on summary content (https://github.com/dart-lang/jnigen/issues/353)
 https://dart.googlesource.com/native.git/+/204d8695 [jnigen] Rename ctor to new (https://github.com/dart-lang/jnigen/issues/362)
 https://dart.googlesource.com/native.git/+/fa5ff14b [jnigen] Check for free in reference getter (https://github.com/dart-lang/jnigen/issues/361)
 https://dart.googlesource.com/native.git/+/7c9cca95 [jnigen] Use isolate_id instead of thread_id (https://github.com/dart-lang/jnigen/issues/360)
 https://dart.googlesource.com/native.git/+/651320e4 [jnigen] Update Dart API headers (https://github.com/dart-lang/jnigen/issues/358)
 https://dart.googlesource.com/native.git/+/17d48f8e [jnigen] Clean up interface implementation using auxiliary generated classes (https://github.com/dart-lang/jnigen/issues/349)
 https://dart.googlesource.com/native.git/+/9492c196 [jnigen] Bump actions/setup-java from 3.11.0 to 3.12.0 (https://github.com/dart-lang/jnigen/issues/338)
 https://dart.googlesource.com/native.git/+/b5b238c9 [ffigen] Bump coverallsapp/github-action from 2.2.0 to 2.2.1 (596)
 https://dart.googlesource.com/native.git/+/2527e476 [jnigen] Bump coverallsapp/github-action from 2.2.0 to 2.2.1 (https://github.com/dart-lang/jnigen/issues/339)
 https://dart.googlesource.com/native.git/+/db9185a3 [jnigen] Override JObject's toString with appropriate Java's toString (https://github.com/dart-lang/jnigen/issues/337)
 https://dart.googlesource.com/native.git/+/bb1c49fd [jnigen] Closes https://github.com/dart-lang/jnigen/issues/325 (https://github.com/dart-lang/jnigen/issues/336)
 https://dart.googlesource.com/native.git/+/ef333492 [jnigen] Fix windows specifics and global reference ownership in interface implementation (https://github.com/dart-lang/jnigen/issues/335)
 https://dart.googlesource.com/native.git/+/7e690dde [jnigen] Fix CI (https://github.com/dart-lang/jnigen/issues/330)
 https://dart.googlesource.com/native.git/+/06730492 [jnigen] Interface implementation (https://github.com/dart-lang/jnigen/issues/326)
 https://dart.googlesource.com/native.git/+/ac1b0498 [ffigen] Allow extern inline functions to be generated. (594)
 https://dart.googlesource.com/native.git/+/cc604f91 [ffigen] Fix doc comment missing on struct/union array fields, update test, ve… (593)
 https://dart.googlesource.com/native.git/+/3a5a9bea [ffigen] Add ffigen yaml schema (586)
 https://dart.googlesource.com/native.git/+/7960c768 [jnigen] Fix summarizer nested class bug (https://github.com/dart-lang/jnigen/issues/312)
 https://dart.googlesource.com/native.git/+/e6bdddbf [jnigen] Bump actions/checkout from 3.5.2 to 3.5.3 (https://github.com/dart-lang/jnigen/issues/311)
 https://dart.googlesource.com/native.git/+/fc8bd8ec [jnigen] Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (https://github.com/dart-lang/jnigen/issues/310)
 https://dart.googlesource.com/native.git/+/34714a4e [ffigen] Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (590)
 https://dart.googlesource.com/native.git/+/4854160d [ffigen] Bump actions/checkout from 3.5.2 to 3.5.3 (589)
 https://dart.googlesource.com/native.git/+/fc6688da [jnigen] Parse Kotlin's metadata + Remove `suspend_fun_to_async` flag in config (https://github.com/dart-lang/jnigen/issues/308)
 https://dart.googlesource.com/native.git/+/cda65643 [jnigen] Added the namespace property in build.gradle if the field is necessary. (https://github.com/dart-lang/jnigen/issues/306)
 https://dart.googlesource.com/native.git/+/9ef4d1f8 [jnigen] Non static nested class construction (https://github.com/dart-lang/jnigen/issues/297)
 https://dart.googlesource.com/native.git/+/72e7019d [jnigen] Add proguard-rules for kotlin_plugin (https://github.com/dart-lang/jnigen/issues/296)
 https://dart.googlesource.com/native.git/+/4827fc35 [jnigen] remove simpleName and packageName (https://github.com/dart-lang/jnigen/issues/294)
 https://dart.googlesource.com/native.git/+/756cd11a [jnigen] Generating List/Map/... from classes in `package:jni` (https://github.com/dart-lang/jnigen/issues/291)
 https://dart.googlesource.com/native.git/+/19ff0d27 [jnigen] Using a yaml symbols file instead of hard coding package:jni exported classes (https://github.com/dart-lang/jnigen/issues/289)
 https://dart.googlesource.com/native.git/+/09eeb536 [ffigen] add LLVM installation instructions for Fedora (584)
 https://dart.googlesource.com/native.git/+/32d057e3 [jnigen] blast_repo fixes (https://github.com/dart-lang/jnigen/issues/283)
 https://dart.googlesource.com/native.git/+/19c89a3c [ffigen] Rename `master` branch to `main` (582)
 https://dart.googlesource.com/native.git/+/cd0d7545 [ffigen] blast_repo fixes (576)
 https://dart.googlesource.com/native.git/+/1ecd702b [jnigen] Refactor C bindings generation (https://github.com/dart-lang/jnigen/issues/282)
 https://dart.googlesource.com/native.git/+/31eb7b8b [jnigen] Fix encoding bug (https://github.com/dart-lang/jnigen/issues/279)
 https://dart.googlesource.com/native.git/+/7452aae5 [jnigen] closes https://github.com/dart-lang/jnigen/issues/280 (https://github.com/dart-lang/jnigen/issues/281)
 https://dart.googlesource.com/native.git/+/29739cfd [ffigen] Fixed invalid code generated due to zero-length arrays in structs/union. (575)
 https://dart.googlesource.com/native.git/+/58a1e635 [jnigen] CI fix (https://github.com/dart-lang/jnigen/issues/277)
 https://dart.googlesource.com/native.git/+/ede5a9cc [ffigen] Set SDK version to 3.0 stable (573)
 https://dart.googlesource.com/native.git/+/6648a18a [ffigen] Fix invalid code generated due to anoymous structs/unions (572)
 https://dart.googlesource.com/native.git/+/d6a05944 [jnigen] Summarizer fix class listing (https://github.com/dart-lang/jnigen/issues/272)
 https://dart.googlesource.com/native.git/+/6822f909 [jnigen] improve coverage (https://github.com/dart-lang/jnigen/issues/274)
 https://dart.googlesource.com/native.git/+/06afdf11 [jnigen] Boxed types + Map + Set + List (https://github.com/dart-lang/jnigen/issues/271)
 https://dart.googlesource.com/native.git/+/013eee20 [ffigen] Add the ability to get a pointer to an objective C object (568)
 https://dart.googlesource.com/native.git/+/995c530a [jnigen] 0.4.0 (https://github.com/dart-lang/jnigen/issues/270)
 https://dart.googlesource.com/native.git/+/c06c2336 [ffigen] Bump version to 8.0.0 stable (566)
 https://dart.googlesource.com/native.git/+/8059f72b [ffigen] Add topics in pubspec.yaml (567)
 https://dart.googlesource.com/native.git/+/fa265a8c [jnigen] Stress tests and a few runtime fixes (https://github.com/dart-lang/jnigen/issues/264)
 https://dart.googlesource.com/native.git/+/21c4801b [ffigen] Bump coverallsapp/github-action from 2.0.0 to 2.1.2 (564)
 https://dart.googlesource.com/native.git/+/41754390 [ffigen] Bump actions/checkout from 3.5.0 to 3.5.2 (563)
 https://dart.googlesource.com/native.git/+/cf3db198 [jnigen] Bump coverallsapp/github-action from 2.0.0 to 2.1.2 (https://github.com/dart-lang/jnigen/issues/269)
 https://dart.googlesource.com/native.git/+/16f2d4ec [jnigen] Bump actions/checkout from 3.5.0 to 3.5.2 (https://github.com/dart-lang/jnigen/issues/268)
 https://dart.googlesource.com/native.git/+/79e845f7 [ffigen] Support for generating Variadic functions (515)
 https://dart.googlesource.com/native.git/+/f0ab18e8 [ffigen] Use `@Native` syntax (562)
 https://dart.googlesource.com/native.git/+/e9f16e67 [jnigen] Support Maven version 4 (https://github.com/dart-lang/jnigen/issues/261)
 https://dart.googlesource.com/native.git/+/1efea342 [ffigen] Merge stable to master, bump version (561)
 https://dart.googlesource.com/native.git/+/54215ca1 [ffigen] Handle multi anonymous struct with same USR (559)
 https://dart.googlesource.com/native.git/+/f129cdfc [jnigen] Add FAQ entry about references (https://github.com/dart-lang/jnigen/issues/259)
 https://dart.googlesource.com/native.git/+/730a9978 [ffigen] Merge pull request 560 from dart-lang/stable-to-7-x
 https://dart.googlesource.com/native.git/+/e01f63d2 [ffigen] Merge commit 'ac318a25ecd7bea6685f8b3f8cabbdea16519936' into stable-to-7-x
 https://dart.googlesource.com/native.git/+/1753fed9 [jnigen] Bunch of small testsuite improvements (https://github.com/dart-lang/jnigen/issues/257)
 https://dart.googlesource.com/native.git/+/80808dac [jnigen] Further FFI improvements (https://github.com/dart-lang/jnigen/issues/254)
 https://dart.googlesource.com/native.git/+/97f6ecc0 [ffigen] Add description to typedef test (557)
 https://dart.googlesource.com/native.git/+/ba48bf74 [ffigen] Change native test bindings name for consistency (556)
 https://dart.googlesource.com/native.git/+/767f2449 [ffigen] 3.0 Class modifiers (553)
 https://dart.googlesource.com/native.git/+/24f449b0 [jnigen] Fix summary generation tests (https://github.com/dart-lang/jnigen/issues/253)
 https://dart.googlesource.com/native.git/+/215832ae [jnigen] Remove FFI patch and use mutex around method/field lookups (https://github.com/dart-lang/jnigen/issues/246)
 https://dart.googlesource.com/native.git/+/ac318a25 [ffigen] Explicit '' as name for anon structs/unions (552)
 https://dart.googlesource.com/native.git/+/e279dd5a [jnigen] Make README more approachable. (https://github.com/dart-lang/jnigen/issues/235)
 https://dart.googlesource.com/native.git/+/d21b6729 [jnigen] (An attempt to) Improve CI workflows (https://github.com/dart-lang/jnigen/issues/222)
 https://dart.googlesource.com/native.git/+/af0ee4fd [jnigen] Type inference for generics (https://github.com/dart-lang/jnigen/issues/236)
 https://dart.googlesource.com/native.git/+/b7db0faf [jnigen] Rethrow exception in gradle stub (https://github.com/dart-lang/jnigen/issues/237)
 https://dart.googlesource.com/native.git/+/fd98f927 [ffigen] Add common code path for test configs (491)
 https://dart.googlesource.com/native.git/+/4d24823d [jnigen] Add ability to use source dependencies from Gradle (https://github.com/dart-lang/jnigen/issues/231)
 https://dart.googlesource.com/native.git/+/e998636a [jnigen] JAR handling improvements (https://github.com/dart-lang/jnigen/issues/220)
 https://dart.googlesource.com/native.git/+/c9c73a09 [jnigen] 1.5x the timeout for the other kotlin test (https://github.com/dart-lang/jnigen/issues/229)
 https://dart.googlesource.com/native.git/+/0dd2f0d0 [jnigen] Use `package:cli_config` (https://github.com/dart-lang/jnigen/issues/197)
 https://dart.googlesource.com/native.git/+/95435836 [ffigen] Update version and changelog (546)
 https://dart.googlesource.com/native.git/+/8bfec3dc [ffigen] Bump coverallsapp/github-action from 1.2.4 to 2.0.0 (543)
 https://dart.googlesource.com/native.git/+/a80742b9 [ffigen] Parameter names in function pointer fields (537)
 https://dart.googlesource.com/native.git/+/732f363c [jnigen] Bump coverallsapp/github-action from 1.2.4 to 2.0.0 (https://github.com/dart-lang/jnigen/issues/224)
 https://dart.googlesource.com/native.git/+/eea221db [jnigen] Bump subosito/flutter-action from 2.8.0 to 2.10.0 (https://github.com/dart-lang/jnigen/issues/223)
 https://dart.googlesource.com/native.git/+/92509331 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/226)
 https://dart.googlesource.com/native.git/+/0279f344 [ffigen] Bump actions/checkout from 3.3.0 to 3.5.0 (542)
 https://dart.googlesource.com/native.git/+/ea63bdf9 [jnigen] Bump actions/checkout from 3.3.0 to 3.5.0 (https://github.com/dart-lang/jnigen/issues/225)
 https://dart.googlesource.com/native.git/+/6110c118 [ffigen] Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (541)
 https://dart.googlesource.com/native.git/+/0727f8a0 [ffigen] Bump subosito/flutter-action from 2.8.0 to 2.10.0 (544)
 https://dart.googlesource.com/native.git/+/f16de6d4 [jnigen] 1.5x the timeout for the kotlin test (https://github.com/dart-lang/jnigen/issues/221)
 https://dart.googlesource.com/native.git/+/5883326d [jnigen] Remove array extensions from the generated code (https://github.com/dart-lang/jnigen/issues/217)
 https://dart.googlesource.com/native.git/+/a16ad441 [jnigen] Generate JValue wrapper classes in pure Dart bindings (https://github.com/dart-lang/jnigen/issues/212)
 https://dart.googlesource.com/native.git/+/4562edc8 [jnigen] Add Coverage badge (https://github.com/dart-lang/jnigen/issues/205)
 https://dart.googlesource.com/native.git/+/15668264 [jnigen] Refactor into Visitor pattern (https://github.com/dart-lang/jnigen/issues/200)
 https://dart.googlesource.com/native.git/+/d7eb3f1c [ffigen] Detect Scoop LLVM installation on Windows (535)
 https://dart.googlesource.com/native.git/+/b26e13d9 [ffigen] Automatically generate `ignore_for_file: type=lint` if not specified in preamble. (532)
 https://dart.googlesource.com/native.git/+/11611875 [ffigen] Bump dependencies and fix lints (527)
 https://dart.googlesource.com/native.git/+/06d224f0 [ffigen] Fix macro file parser (524)
 https://dart.googlesource.com/native.git/+/64fec925 [jnigen] Bump coverallsapp/github-action from 1.1.3 to 1.2.4 (https://github.com/dart-lang/jnigen/issues/192)
 https://dart.googlesource.com/native.git/+/b54e1cbe [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/191)
 https://dart.googlesource.com/native.git/+/abace99f [ffigen] Bump coverallsapp/github-action from 1.1.3 to 1.2.4 (523)
 https://dart.googlesource.com/native.git/+/b94aa02b [ffigen] Bump SDK constraint to 4.0.0 (517)
 https://dart.googlesource.com/native.git/+/ce9e59e7 [jnigen] Bump SDK constraint to 4.0.0 (https://github.com/dart-lang/jnigen/issues/190)
 https://dart.googlesource.com/native.git/+/f27c722c [ffigen] Fix path normalization for absolute paths and globs starting with ** (516)
 https://dart.googlesource.com/native.git/+/2267ff48 [jnigen] 0.3.0 (https://github.com/dart-lang/jnigen/issues/189)
 https://dart.googlesource.com/native.git/+/4f770ade [jnigen] Convert Kotlin's `suspend fun` to Dart's async methods (https://github.com/dart-lang/jnigen/issues/171)
 https://dart.googlesource.com/native.git/+/5ab08fdb [ffigen] Add support nested anonymous union/struct (511)
 https://dart.googlesource.com/native.git/+/6c47900c [ffigen] Bump dart-lang/setup-dart from 1.3 to 1.4 (508)
 https://dart.googlesource.com/native.git/+/bcdbe76b [ffigen] Bump actions/checkout from 3.2.0 to 3.3.0 (507)
 https://dart.googlesource.com/native.git/+/55b84ad4 [ffigen] Fix formatting (509)
 https://dart.googlesource.com/native.git/+/466ed3f7 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/179)
 https://dart.googlesource.com/native.git/+/800a1102 [jnigen] Bump egor-tensin/setup-clang from 1.3 to 1.4 (https://github.com/dart-lang/jnigen/issues/180)
 https://dart.googlesource.com/native.git/+/e22150db [jnigen] fix link (https://github.com/dart-lang/jnigen/issues/177)
 https://dart.googlesource.com/native.git/+/6c6b5f5f [jnigen] 0.2.1 (https://github.com/dart-lang/jnigen/issues/175)
 https://dart.googlesource.com/native.git/+/7bf0a717 [jnigen] 0.2.0 (https://github.com/dart-lang/jnigen/issues/174)
 https://dart.googlesource.com/native.git/+/d9ae6e2f [ffigen] Add a bit more introduction to readme (505)
 https://dart.googlesource.com/native.git/+/87bba4e4 [jnigen] Bump actions/checkout from 3.1.0 to 3.3.0 (https://github.com/dart-lang/jnigen/issues/169)
 https://dart.googlesource.com/native.git/+/540922a3 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/167)
 https://dart.googlesource.com/native.git/+/4e3eeb51 [ffigen] Bump actions/checkout from 3.1.0 to 3.2.0 (502)
 https://dart.googlesource.com/native.git/+/8f00f5f7 [ffigen] Update example in README.md (501)
 https://dart.googlesource.com/native.git/+/659e626c [jnigen] Exclude methods and fields of excluded classes  (https://github.com/dart-lang/jnigen/issues/164)
 https://dart.googlesource.com/native.git/+/4c5f570f [ffigen] Add new supported typedef - `uintptr_t` (mapped to `ffi.UintPtr`). (499)
 https://dart.googlesource.com/native.git/+/611c9646 [jnigen] Use .jar metadata to generate generic types (https://github.com/dart-lang/jnigen/issues/158)
 https://dart.googlesource.com/native.git/+/82c0e16f [ffigen] Code cleanup (496)
 https://dart.googlesource.com/native.git/+/faebd8b4 [ffigen] Allow user compiler options to override built-in options (495)
 https://dart.googlesource.com/native.git/+/c1954121 [jnigen] Bump coverallsapp/github-action from 1.1.2 to 1.1.3 (https://github.com/dart-lang/jnigen/issues/154)
 https://dart.googlesource.com/native.git/+/c470670f [jnigen] blast_repo fixes (https://github.com/dart-lang/jnigen/issues/152)
 https://dart.googlesource.com/native.git/+/8460b264 [jnigen] fixed the problem with annotations containing enums + reg tests (https://github.com/dart-lang/jnigen/issues/150)
 https://dart.googlesource.com/native.git/+/51f71d85 [jnigen] Updated docs to reflect renames (https://github.com/dart-lang/jnigen/issues/146)
 https://dart.googlesource.com/native.git/+/e19d7d66 [ffigen] Added new llvm versions to linuxDylibLocations (489)
 https://dart.googlesource.com/native.git/+/da1647c7 [jnigen] Generic support (https://github.com/dart-lang/jnigen/issues/136)
 https://dart.googlesource.com/native.git/+/878ec39b [ffigen] Remove the built in flag from ObjC interfaces (487)
 https://dart.googlesource.com/native.git/+/d057af5d [jnigen] Add some documentation (https://github.com/dart-lang/jnigen/issues/115)
 https://dart.googlesource.com/native.git/+/a9e526b3 [jnigen] Improve coverage (https://github.com/dart-lang/jnigen/issues/134)
 https://dart.googlesource.com/native.git/+/77ee8707 [ffigen] Bump coverallsapp/github-action from 1.1.2 to 1.1.3 (482)
 https://dart.googlesource.com/native.git/+/18f94998 [ffigen] blast_repo fixes (481)
 https://dart.googlesource.com/native.git/+/1d36198e [jnigen] added .filled ctor to JArray (https://github.com/dart-lang/jnigen/issues/130)
 https://dart.googlesource.com/native.git/+/a80a3780 [jnigen] `JniX` to `JX` rename (https://github.com/dart-lang/jnigen/issues/126)
 https://dart.googlesource.com/native.git/+/068d88fe [jnigen] Array support (https://github.com/dart-lang/jnigen/issues/118)
 https://dart.googlesource.com/native.git/+/5e87326a [jnigen] Summarizer fix (https://github.com/dart-lang/jnigen/issues/116)
 https://dart.googlesource.com/native.git/+/cbe33448 [jnigen] Some summarizer improvements (https://github.com/dart-lang/jnigen/issues/114)
 https://dart.googlesource.com/native.git/+/35f1ba8d [jnigen] Pure dart bindings (https://github.com/dart-lang/jnigen/issues/110)
 https://dart.googlesource.com/native.git/+/88dcfc93 [jnigen] fix: pr_checks now works on macOS (https://github.com/dart-lang/jnigen/issues/108)
 https://dart.googlesource.com/native.git/+/27ca3100 [jnigen] Add regenerate script (https://github.com/dart-lang/jnigen/issues/106)
 https://dart.googlesource.com/native.git/+/f5b33be0 [jnigen] colorized warning in logger (https://github.com/dart-lang/jnigen/issues/107)
 https://dart.googlesource.com/native.git/+/1972596e [ffigen] Prevent warnings in FfiNative example (479)
 https://dart.googlesource.com/native.git/+/a9446e7f [jnigen] Array signatures fix (https://github.com/dart-lang/jnigen/issues/105)
 https://dart.googlesource.com/native.git/+/07d8c725 [ffigen] Symbol file import export (468)
 https://dart.googlesource.com/native.git/+/e50394b8 [ffigen] Use tmpDir over working directory (464)
 https://dart.googlesource.com/native.git/+/5cb0060d [jnigen] Reduce concatenation in binding generator code (https://github.com/dart-lang/jnigen/issues/102)
 https://dart.googlesource.com/native.git/+/226e60f3 [jnigen] File-per-class and single file bindings (https://github.com/dart-lang/jnigen/issues/98)
 https://dart.googlesource.com/native.git/+/644e75fb [jnigen] Make jni:setup build all native libraries (https://github.com/dart-lang/jnigen/issues/96)
 https://dart.googlesource.com/native.git/+/637134b2 [ffigen] Zero initialize unused Block fields (475)
 https://dart.googlesource.com/native.git/+/9cb65f6a [jnigen] bump jackson-databind to 2.14.0-rc2 (https://github.com/dart-lang/jnigen/issues/97)
 https://dart.googlesource.com/native.git/+/3e801f95 [jnigen] Move output related configuration to single place (https://github.com/dart-lang/jnigen/issues/93)
 https://dart.googlesource.com/native.git/+/0fb321c5 [ffigen] Add a step for building cursor definition map. (474)
 https://dart.googlesource.com/native.git/+/81bda33f [jnigen] Few improvements in generated C code including exception support. (https://github.com/dart-lang/jnigen/issues/87)
 https://dart.googlesource.com/native.git/+/5563b5cb [ffigen] Fix some noisy warnings that often show up in ObjC binding generation (469)
 https://dart.googlesource.com/native.git/+/848ac943 [ffigen] Remove unnecessary root cursor filtering (471)
 https://dart.googlesource.com/native.git/+/d6fed49b [jnigen] tools: generate_ide_files.dart and pre_commit_checks.dart (https://github.com/dart-lang/jnigen/issues/86)
 https://dart.googlesource.com/native.git/+/abb3c7b5 [jnigen] General cleanup (https://github.com/dart-lang/jnigen/issues/80)
 https://dart.googlesource.com/native.git/+/0aba098b [ffigen] Remove ignoreFilter from typedef parsing. (462)
 https://dart.googlesource.com/native.git/+/30cc93d5 [ffigen] Assume relative paths are relative to the config file (465)
 https://dart.googlesource.com/native.git/+/27d9b9f0 [ffigen] Fix mac bot (466)
 https://dart.googlesource.com/native.git/+/a719f3b5 [jnigen] LICENSE trailer for generated code (https://github.com/dart-lang/jnigen/issues/63)
 https://dart.googlesource.com/native.git/+/4fe87834 [ffigen] Update LICENSE (457)
 https://dart.googlesource.com/native.git/+/2a430c67 [ffigen] NativeFunc's child should be a FunctionType (461)
 https://dart.googlesource.com/native.git/+/5c4b3abc [ffigen] Pointer.fromFunction leaks, so store result in static variable (459)
 https://dart.googlesource.com/native.git/+/6ef32d59 [ffigen] Remove list_diff package (456)
 https://dart.googlesource.com/native.git/+/550b27e5 [jnigen] Windows support (https://github.com/dart-lang/jnigen/issues/59)
 https://dart.googlesource.com/native.git/+/820c2b1e [ffigen] Correctly handle strings with null characters (454)
 https://dart.googlesource.com/native.git/+/a2465f94 [ffigen] Work around analyzer bug for FfiNatives (455)
 https://dart.googlesource.com/native.git/+/33105e76 [jnigen] Update pubspec.yaml (https://github.com/dart-lang/jnigen/issues/58)
 https://dart.googlesource.com/native.git/+/ac9f26aa [jnigen] Update pubspec.yaml (https://github.com/dart-lang/jnigen/issues/57)
 https://dart.googlesource.com/native.git/+/e53465bd [jnigen] Jni refactor (https://github.com/dart-lang/jnigen/issues/53)
 https://dart.googlesource.com/native.git/+/cd369f0b [jnigen] logging (https://github.com/dart-lang/jnigen/issues/48)
 https://dart.googlesource.com/native.git/+/a1bd070d [jnigen] Rename to jnigen (https://github.com/dart-lang/jnigen/issues/47)
 https://dart.googlesource.com/native.git/+/41e7871e [jnigen] Android plugin example (https://github.com/dart-lang/jnigen/issues/46)
 https://dart.googlesource.com/native.git/+/ef4a9f83 [jnigen] Jni_gen Examples (https://github.com/dart-lang/jnigen/issues/36)
 https://dart.googlesource.com/native.git/+/91a41f6d [jnigen] Rename java package of simple_test to com.github.dart_lang.... (https://github.com/dart-lang/jnigen/issues/35)
 https://dart.googlesource.com/native.git/+/0f7ced71 [jnigen] Add basic YAML config support (https://github.com/dart-lang/jnigen/issues/32)
 https://dart.googlesource.com/native.git/+/b5160496 [jnigen] Initial code generator support (https://github.com/dart-lang/jnigen/issues/19)
 https://dart.googlesource.com/native.git/+/2081ac09 [ffigen] Fix function deduplication (450)
 https://dart.googlesource.com/native.git/+/4d938396 [ffigen] `ffi-native` -> `asset` stop logger warning (449)
 https://dart.googlesource.com/native.git/+/50f06156 [ffigen] `FfiNative` support (447)
 https://dart.googlesource.com/native.git/+/22c90064 [ffigen] Add a swift example (441)
 https://dart.googlesource.com/native.git/+/a97fe3fa [ffigen] Increase timeout Flutter integration test (446)
 https://dart.googlesource.com/native.git/+/a88db78f [ffigen] Run Flutter FFI plugin template ffigen on CI (433)
 https://dart.googlesource.com/native.git/+/409e87a6 [ffigen] Fix obscure NSTimeZone parsing bug (440)
 https://dart.googlesource.com/native.git/+/f28313b2 [ffigen] Add an objective-C module prefix option (438)
 https://dart.googlesource.com/native.git/+/43a485c9 [ffigen] Add exclude-all-by-default config flag (431)
 https://dart.googlesource.com/native.git/+/7592ecb7 [ffigen] Memory management for Blocks (429)
 https://dart.googlesource.com/native.git/+/a06690e8 [jnigen] Initial JNI support (https://github.com/dart-lang/jnigen/issues/11)
 https://dart.googlesource.com/native.git/+/e0dc7c5d [ffigen] Throw an error if ObjC class fails to load (423)
 https://dart.googlesource.com/native.git/+/5507e994 [ffigen] Update clang to fix CI failure (425)
 https://dart.googlesource.com/native.git/+/c71be7b5 [ffigen] ObjC example (416)
 https://dart.googlesource.com/native.git/+/691eb2b6 [ffigen] Check that property types aren't incomplete (415)
 https://dart.googlesource.com/native.git/+/ed819e35 [ffigen] Skip methods that have incomplete types (412)
 https://dart.googlesource.com/native.git/+/3dee1d86 [jnigen] Create FFI plugin (https://github.com/dart-lang/jnigen/issues/8)
 https://dart.googlesource.com/native.git/+/63534577 [jnigen] Top level project information files (https://github.com/dart-lang/jnigen/issues/6)
 https://dart.googlesource.com/native.git/+/837ceb41 [jnigen] Move stub package to its own folder (https://github.com/dart-lang/jnigen/issues/2)
 https://dart.googlesource.com/native.git/+/982a2679 [jnigen] Delete CONTRIBUTING.md (https://github.com/dart-lang/jnigen/issues/4)
 https://dart.googlesource.com/native.git/+/151ed121 [ffigen] Fixing mac bot by explicitly setting the objective C sysroot (414)
 https://dart.googlesource.com/native.git/+/04dc916d [ffigen] Add a call method to Blocks (407)
 https://dart.googlesource.com/native.git/+/b15555b2 [ffigen] Bump `package:ffi` (405)
 https://dart.googlesource.com/native.git/+/153aad5c [ffigen] Use `ldconfig` to find libclang (403)
 https://dart.googlesource.com/native.git/+/0179324d [ffigen] More ways to find XCode's libclang on MacOS (402)
 https://dart.googlesource.com/native.git/+/6cad2383 [ffigen] Add Windows CI (399)
 https://dart.googlesource.com/native.git/+/e1d384dd [ffigen] Fix `include-directives` on Windows (397)
 https://dart.googlesource.com/native.git/+/3742faa3 [jnigen] Add build badge (https://github.com/dart-lang/jnigen/issues/1)
 https://dart.googlesource.com/native.git/+/9858cfc5 [ffigen] Update README.md (396)
 https://dart.googlesource.com/native.git/+/4cf58c70 [ffigen] bump package:ffi (394)
 https://dart.googlesource.com/native.git/+/2a39260b [jnigen] Initial commit
 https://dart.googlesource.com/native.git/+/c3643b60 [ffigen] Removed config `dart-bool`. Booleans are now always generated with `bool` (391)
 https://dart.googlesource.com/native.git/+/edd60410 [ffigen] Test assign/retain/copy properties (390)
 https://dart.googlesource.com/native.git/+/b54e57d1 [ffigen] Test autorelease pools and more copying cases (385)
 https://dart.googlesource.com/native.git/+/50e0ba86 [ffigen] Add the ability to control reference counting behavior in castFromPointer (388)
 https://dart.googlesource.com/native.git/+/4e2b86de [ffigen] Add xcode tools llvm as default path (389)
 https://dart.googlesource.com/native.git/+/9f466919 [ffigen] Add a static isInstance method to ObjC classes (383)
 https://dart.googlesource.com/native.git/+/3f345cbc [ffigen] Handle NS_RETURNS_RETAINED and methods that start with new/alloc or contain copy (380)
 https://dart.googlesource.com/native.git/+/5c613df6 [ffigen] docs(changelog): remove extra  (377)
 https://dart.googlesource.com/native.git/+/50065811 [ffigen] Support constructing blocks from closures (382)
 https://dart.googlesource.com/native.git/+/b6033532 [ffigen] Initialize the Block isa field (378)
 https://dart.googlesource.com/native.git/+/6ba5f5c1 [ffigen] Automatic ref counting for ObjC objects (372)
 https://dart.googlesource.com/native.git/+/7258410a [ffigen] Use `package:ffi` 1.2.1 (371)
 https://dart.googlesource.com/native.git/+/01d9ba63 [ffigen] Fix coverage for ObjC tests (370)
 https://dart.googlesource.com/native.git/+/383859ae [ffigen] Cleanup some code around ObjC goldens (368)
 https://dart.googlesource.com/native.git/+/04332def [ffigen] Update pubspec of examples (367)
 https://dart.googlesource.com/native.git/+/2a05b4f1 [ffigen] Mention ObjectiveC support in changelog (366)
 https://dart.googlesource.com/native.git/+/7b376dbb [ffigen] Use ABI-specific integers from `dart:ffi` (365)
 https://dart.googlesource.com/native.git/+/cd1fec4f [ffigen] Remove ObjC tests that check golden generated code (363)
 https://dart.googlesource.com/native.git/+/3e584af3 [ffigen] Update names of compound members to reflect what is generated (361)
 https://dart.googlesource.com/native.git/+/32162936 [ffigen] Add a registry for ObjC built in interfaces (358)
 https://dart.googlesource.com/native.git/+/9148781b [ffigen] Don't remove trailing underscores from method names (357)
 https://dart.googlesource.com/native.git/+/60883c96 [ffigen] Fix ObjC @class declarations (352)
 https://dart.googlesource.com/native.git/+/f22e7460 [ffigen] Fix a bug where duplicate methods were added to some classes. (354)
 https://dart.googlesource.com/native.git/+/287abc4a [ffigen] Block support (333)
 https://dart.googlesource.com/native.git/+/c1bafec4 [ffigen] Categories (349)
 https://dart.googlesource.com/native.git/+/47d147ee [ffigen] Fix coverage configuration (337)
 https://dart.googlesource.com/native.git/+/7aa6d589 [ffigen] Make properties that set/get objective-c instances nullable (348)
 https://dart.googlesource.com/native.git/+/3ce29269 [ffigen] Add the ability to cast from a pointer to an interface. (346)
 https://dart.googlesource.com/native.git/+/afe4f0d9 [ffigen] Don't automatically include system headers (342)
 https://dart.googlesource.com/native.git/+/0b95430f [ffigen] Make all NSObject references nullable in the generated dart bindings. (339)
 https://dart.googlesource.com/native.git/+/4da279f3 [ffigen] Move ObjC classes and SELs to NativeLibrary (331)
 https://dart.googlesource.com/native.git/+/e317fc2e [ffigen] Improve Type deduping in objc_msgSend (326)
 https://dart.googlesource.com/native.git/+/4af99f99 [ffigen] Configurable filtering for ObjC interfaces (313)
 https://dart.googlesource.com/native.git/+/5560f587 [ffigen] Update pubspec.yaml (332)
 https://dart.googlesource.com/native.git/+/cb7825b0 [ffigen] Create more tests and move them to separate files. (330)
 https://dart.googlesource.com/native.git/+/66f0cc0b [ffigen] Provide a command to regenerate golden bindings. (322)
 https://dart.googlesource.com/native.git/+/205549b1 [ffigen] Move ObjCBuiltInFunctions to its own file and its singleton to data.dart (325)
 https://dart.googlesource.com/native.git/+/a6c2e234 [ffigen] Generate a nice error if files generated by test/setup.dart are not present
 https://dart.googlesource.com/native.git/+/07af7fb7 [ffigen] Move property tests into "native_objc_test" group
 https://dart.googlesource.com/native.git/+/d461aa87 [ffigen] Fix instructions for adding `package:ffi` (318)
 https://dart.googlesource.com/native.git/+/2015d3e1 [ffigen] Generate complete method signatures. (319)
 https://dart.googlesource.com/native.git/+/fc201ac2 [ffigen] Add support for readonly and class properties (314)
 https://dart.googlesource.com/native.git/+/01511cfa [ffigen] Coerce BOOL to bool (311)
 https://dart.googlesource.com/native.git/+/eece4afe [ffigen] NSString <-> String converters (310)
 https://dart.googlesource.com/native.git/+/3c6c3761 [ffigen] Fix handling of void methods (308)
 https://dart.googlesource.com/native.git/+/54ced0d7 [ffigen] Add an integration test for objective C (293)
 https://dart.googlesource.com/native.git/+/4f93f6e8 [ffigen] Make type polymorphic (290)
 https://dart.googlesource.com/native.git/+/cecaba72 [ffigen] Remove bool special casing (294)
 https://dart.googlesource.com/native.git/+/bdfd97a3 [ffigen] Add a warning message to objective C support (292)
 https://dart.googlesource.com/native.git/+/ecbdca2d [ffigen] Add contributing info (291)
 https://dart.googlesource.com/native.git/+/730572f8 [ffigen] Objective C interfaces (287)
 https://dart.googlesource.com/native.git/+/793585f8 [ffigen] Test on mac, to cover objective C (289)
 https://dart.googlesource.com/native.git/+/f2a92398 [ffigen] First bits of Objective C support (281)
 https://dart.googlesource.com/native.git/+/489e1e64 [ffigen] BindingsIndex refactor (283)
 https://dart.googlesource.com/native.git/+/b570afb6 [ffigen] Add default location for LLVM on M1 Mac (278)
 https://dart.googlesource.com/native.git/+/3f80cd0d [ffigen] Fix size_t and wchar_t default dart types. (274)
 https://dart.googlesource.com/native.git/+/b1d4a132 [ffigen] Merge pull request 269 from mannprerak2/merge_stable
 https://dart.googlesource.com/native.git/+/bf2f951f [ffigen] Merge branch 'stable' into merge_stable
 https://dart.googlesource.com/native.git/+/f210680f [ffigen] Release Patch 4.1.3 (266)
 https://dart.googlesource.com/native.git/+/a8305d64 [ffigen] Move to new analyzer checks (264)
 https://dart.googlesource.com/native.git/+/0f708a7b [ffigen] Support for ABI-specific integers (261)
 https://dart.googlesource.com/native.git/+/68a2e76e [ffigen] Suggest using `dart pub add -d ffigen` (259)
 https://dart.googlesource.com/native.git/+/b74c78a2 [ffigen] Exclude all on empty include list (254)
 https://dart.googlesource.com/native.git/+/ba4d058e [ffigen] Added fix for member name and type name collision in structs/unions. (256)
 https://dart.googlesource.com/native.git/+/94464ea2 [ffigen] Added support for marking functions as Leaf. (252)
 https://dart.googlesource.com/native.git/+/c7a25fb4 [ffigen] Bump version to 4.0.0 (247)
 https://dart.googlesource.com/native.git/+/76464220 [ffigen] Update library.dart dartfmt comment (234)
 https://dart.googlesource.com/native.git/+/9a5ceb77 [ffigen] Added config for exposing typedefs to Native and Dart type. (231)
 https://dart.googlesource.com/native.git/+/16ecf9f6 [ffigen] Move from package:pedantic to pacakge:lints (230)
 https://dart.googlesource.com/native.git/+/eb7b6545 [ffigen] Generate dart typedefs for C typedefs (224)
 https://dart.googlesource.com/native.git/+/ae89d3ff [ffigen] Add `structs` and `enums`'s rename to readme (225)
 https://dart.googlesource.com/native.git/+/4bed0754 [ffigen] Allow users to specify complete dylib path  (221)
 https://dart.googlesource.com/native.git/+/362cc702 [ffigen] Added support for generating Unions (215)
 https://dart.googlesource.com/native.git/+/09e8bedb [ffigen] Bump version to 3.0.0 (216)
 https://dart.googlesource.com/native.git/+/53a193df [ffigen] Update readme to clarify C support. (209)
 https://dart.googlesource.com/native.git/+/78cafc8f [ffigen] Support for inline arrays in structs (206)
 https://dart.googlesource.com/native.git/+/9f8e6d4f [ffigen] Support for Packed struct (205)
 https://dart.googlesource.com/native.git/+/1d65b284 [ffigen] Update LICENSE (203)
 https://dart.googlesource.com/native.git/+/6152bb44 [ffigen] Fix error caused by duplicate declaration names and collision with ffi library prefix (200)
 https://dart.googlesource.com/native.git/+/14f7c969 [ffigen] Support Char_U type kind (202)
 https://dart.googlesource.com/native.git/+/108d09f5 [ffigen] Add /usr/lib to default locations and update readme. (196)
 https://dart.googlesource.com/native.git/+/8d26a111 [ffigen] Added key `llvm-path`. Deprecate `llvm-lib`. (194)
 https://dart.googlesource.com/native.git/+/7e106e41 [ffigen] Automatically add std lib for macos, allow passing list to compiler-opts. (193)
 https://dart.googlesource.com/native.git/+/8fb2f9f6 [ffigen] Added new command-line option `--compiler-opts`. (192)
 https://dart.googlesource.com/native.git/+/02ef1a37 [ffigen] Fix global rename in README.md (188)
 https://dart.googlesource.com/native.git/+/3c138e56 [ffigen] Fix `sort: true` not working, remove //+ from full comments. (187)
 https://dart.googlesource.com/native.git/+/1c59892b [ffigen] Added option to generate dependency-only structs as opaque (181)
 https://dart.googlesource.com/native.git/+/710842f4 [ffigen] Fixed generation of empty Opaque structs due to forward declarations. (180)
 https://dart.googlesource.com/native.git/+/e2038adf [ffigen] Fix generation of duplicate constants with multiple entry points (178)
 https://dart.googlesource.com/native.git/+/18189c4a [ffigen] Added subkey symbol-address to expose native pointers and typedefs. (175)
 https://dart.googlesource.com/native.git/+/8cd3d694 [ffigen] Support for Dynamic linking (174)
 https://dart.googlesource.com/native.git/+/a34723ff [ffigen] Ignore name of typedef struct pointer declaration, recursively create directories for output. (172)
 https://dart.googlesource.com/native.git/+/d1a04a04 [ffigen] Fixes for `const` in name error, unnamed inline structs and empty structs. (169)
 https://dart.googlesource.com/native.git/+/d785fee7 [ffigen] Stable release: Update dependencies to sound null safety, minor changes. (168)
 https://dart.googlesource.com/native.git/+/3cf6fc05 [ffigen] Skip inline functions (147) (167)
 https://dart.googlesource.com/native.git/+/f75b3e82 [ffigen] Use Opaque to represent empty Structs (142, 143) (166)
 https://dart.googlesource.com/native.git/+/bd781397 [ffigen] Added support for Global variables (139) (165)
 https://dart.googlesource.com/native.git/+/7ae4d240 [ffigen] Remove setup phase and usage of --no-sound-null-safety flag (135, 137) (164)
 https://dart.googlesource.com/native.git/+/bee5db2f [ffigen] Support for passing/returning Structs by value. (134) (163)
 https://dart.googlesource.com/native.git/+/7f3948fd [ffigen] Support for Nested structs (133) (161)
 https://dart.googlesource.com/native.git/+/06131d63 [ffigen] Update README.md (152)
 https://dart.googlesource.com/native.git/+/4a9672f1 [ffigen] Removed usage of --no-sound-null-safety flag. (136)
 https://dart.googlesource.com/native.git/+/fb8ac4ee [ffigen] Add include path for systems with LLVM 11 (e.g. Debian 11) (125)
 https://dart.googlesource.com/native.git/+/2ab4701a [ffigen] Remove usage of package:collection. (130)
 https://dart.googlesource.com/native.git/+/d98fee1a [ffigen] Null safety migration (122)
 https://dart.googlesource.com/native.git/+/68e4fa04 [ffigen] Migrate to GitHub Actions (124)
 https://dart.googlesource.com/native.git/+/3f867137 [ffigen] Added support for Dart_Handle to be generated as Handle (121)
 https://dart.googlesource.com/native.git/+/59708c61 [ffigen] Added workaround to map typedef names to a NativeType. (119)
 https://dart.googlesource.com/native.git/+/7a7a823a [ffigen] Fixed missing typedefs nested under return type of another typedef (116)
 https://dart.googlesource.com/native.git/+/13a64f3d [ffigen] Handled proper conversion of macro doubles. (113)
 https://dart.googlesource.com/native.git/+/a4923ab3 [ffigen] Updated tool to use dart format when sdk >=2.10.0 (110)
 https://dart.googlesource.com/native.git/+/46dc6244 [ffigen] Fixed errors due to extended ASCII and control characters in macros (106)
 https://dart.googlesource.com/native.git/+/ed2cf4d0 [ffigen] Update readme (104)
 https://dart.googlesource.com/native.git/+/026ffe19 [ffigen] Handle function types in functions/typedefs as function pointers  (103)
 https://dart.googlesource.com/native.git/+/ad561043 [ffigen] Bump version to 1.0.0, minor fixes (101)
 https://dart.googlesource.com/native.git/+/74a89af3 [ffigen] Update lib/src/README.md (100)
 https://dart.googlesource.com/native.git/+/4a17f0de [ffigen] Update README.md (97)
 https://dart.googlesource.com/native.git/+/8e287ce5 [ffigen] Added support for including/excluding/renaming unnamed_enums (96)
 https://dart.googlesource.com/native.git/+/f760287e [ffigen] Clarify LLVM error messages (93)
 https://dart.googlesource.com/native.git/+/eb3cae23 [ffigen] Added support for c99 bool (86)
 https://dart.googlesource.com/native.git/+/9566c7e4 [ffigen] Removed dart:cli usage, use dylib version from ffigen's pubspec.yaml (88)
 https://dart.googlesource.com/native.git/+/82875d4c [ffigen] Improve logs (87)
 https://dart.googlesource.com/native.git/+/74a808bb [ffigen] Fix missing typedef dependencies (90)
 https://dart.googlesource.com/native.git/+/e07937e0 [ffigen] Remove structs members for bit field members, Added tests (85)
 https://dart.googlesource.com/native.git/+/12f79c8c [ffigen] update meta (82)
 https://dart.googlesource.com/native.git/+/1a260ce3 [ffigen] Updated parsing of typedef enclosed declarations (83)
 https://dart.googlesource.com/native.git/+/5a96775b [ffigen] Update readme - added FAQ, fixed config table (78)
 https://dart.googlesource.com/native.git/+/ece2197c [ffigen] Update licenses for third_party (76)
 https://dart.googlesource.com/native.git/+/c6f7ec49 [ffigen] Fixes for typedefs (75)
 https://dart.googlesource.com/native.git/+/cad06e0a [ffigen] Update public API (70)
 https://dart.googlesource.com/native.git/+/1596489c [ffigen] Handled flexible array members in structs (69)
 https://dart.googlesource.com/native.git/+/a8551680 [ffigen] Regexp based Member renaming (66)
 https://dart.googlesource.com/native.git/+/f6b92474 [ffigen] Simpler include/exclude, regexp based renaming for declarations (62)
 https://dart.googlesource.com/native.git/+/09af0376 [ffigen] Escaped special characters $ and ' from string macros. (64)
 https://dart.googlesource.com/native.git/+/d80fa0ae [ffigen] Update headers config. (60)
 https://dart.googlesource.com/native.git/+/be939f4b [ffigen] Added support for parsing macros and anonymous unnamed enums (35)
 https://dart.googlesource.com/native.git/+/c1048a0c [ffigen] Update config specification for Comments (48)
 https://dart.googlesource.com/native.git/+/c07219b8 [ffigen] Handle function argument dart keywords and setup travis (49)
 https://dart.googlesource.com/native.git/+/4439a4ee [ffigen] Update README.md (46)
 https://dart.googlesource.com/native.git/+/6afbceb5 [ffigen] Fixed wrapper not found error when running pub run ffigen (42)
 https://dart.googlesource.com/native.git/+/f2f4eb43 [ffigen] Address pub score (37)
 https://dart.googlesource.com/native.git/+/5f8de9fd [ffigen] Prepare for pub release (36)
 https://dart.googlesource.com/native.git/+/832458d3 [ffigen] Name conflict resolution with reserved Dart Keywords (34)
 https://dart.googlesource.com/native.git/+/c499fe52 [ffigen] Added large tests, bug fixes (33)
 https://dart.googlesource.com/native.git/+/e8034cc5 [ffigen] Fixes for running on MacOS (32)
 https://dart.googlesource.com/native.git/+/2b7eb311 [ffigen] Update readme (31)
 https://dart.googlesource.com/native.git/+/b60cc611 [ffigen] Added wrapper over lookUpbindings, fixed merge conflicts, migrated code (25)
 https://dart.googlesource.com/native.git/+/d3c91ade [ffigen] Support for Prefix and Names in config. (20)
 https://dart.googlesource.com/native.git/+/27d83703 [ffigen] Support for array parameters in functions, array workarounds in Structs (18)
 https://dart.googlesource.com/native.git/+/5d438979 [ffigen] Add gitignores for IDEs and debuggers (19)
 https://dart.googlesource.com/native.git/+/01378b8d [ffigen] Improved generated comments (16)
 https://dart.googlesource.com/native.git/+/ee580636 [ffigen] Simplified run command (15)
 https://dart.googlesource.com/native.git/+/39b1468c [ffigen] Initial generator: functions, structs, enums (2)
 https://dart.googlesource.com/native.git/+/ff1ac4a1 [ffigen] Update README.md (9)
 https://dart.googlesource.com/native.git/+/8417b07c [ffigen] Remove/fix references to dartlang.org (1)
 https://dart.googlesource.com/native.git/+/50fc8c44 [ffigen] Initialize repo
 https://dart.googlesource.com/native.git/+/9bfe8e78 [ffigen] Initial commit

```

Diff: https://dart.googlesource.com/native.git/+/eaea725b0939815e7d007a34808a7293b179a2ad..5dca10ea324bb19f104126d72472280091829873/
Change-Id: I1c5a08859945442d968ff7dba333c0649b11f26c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/336826
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants