Giter Site home page Giter Site logo

sensuikan1973 / libedax4dart Goto Github PK

View Code? Open in Web Editor NEW
5.0 0.0 0.0 52.51 MB

dart wrapper for libedax

Home Page: https://pub.dev/packages/libedax4dart

License: GNU General Public License v3.0

Dart 99.62% Shell 0.38%
dart edax othello codecov ffi windows macos linux dart-ffi reversi

libedax4dart's Introduction

libedax4dart's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar sensuikan1973 avatar

Stargazers

 avatar  avatar  avatar  avatar

libedax4dart's Issues

future; use Dart SDK "beta"

dev SDK を使う場合、pub.dev のチェックが完全に死ぬ(pub.dev は SDK beta より先のものを対象外としているため)。
そのため、異様に Score が低くなっているが、しょうがない。

beta SDK でも動くようにすればいいが、ffi 周りの差分を吸収できないので、ひとまず dev を前提としている。
beta にすると、各種 struct 定義について以下のエラーで落ちる。

"Field '#name' requires exactly one annotation to declare its C++ type, which cannot be Void. dart:ffi Structs cannot have regular Dart fields."

将来的には、beta を使うように変えたい。

CI on ubuntu/windows sometimes CRASH

e.g. https://github.com/sensuikan1973/libedax4dart/runs/1746824097

===== CRASH =====
si_signo=Illegal instruction(4), si_code=2, si_addr=0x7f1bcbf8506a
version=2.12.0-133.7.beta (beta) (Tue Jan 12 09:25:38 2021 +0100) on "linux_x64"
pid=2673, thread=2714, isolate_group=main(0x55ec8e35ae00), isolate=main(0x55ec8c7a1800)
isolate_instructions=55ec89a0ea80, vm_instructions=55ec89a0ea80
Stack dump aborted because InitialRegisterCheck failed.
00:01 +0: ./test/libedax4dart_test.dart: initialize without args, and set option                                                                                                                       
/home/runner/work/_temp/6f232b6f-6fd4-4c38-8c07-db1f8c5c808c.sh: line 1:  2673 Aborted                 (core dumped) pub run test .

https://github.com/sensuikan1973/libedax4dart/runs/1758701553 も。

enable-auto-merge doesn't work

https://github.com/sensuikan1973/libedax4dart/actions/runs/7717379727/job/21036367593

Run gh pr merge -R "sensuikan1973/libedax4dart" --squash --auto "496"
  gh pr merge -R "sensuikan[19](https://github.com/sensuikan1973/libedax4dart/actions/runs/7717379727/job/21036367593#step:9:21)73/libedax4dart" --squash --auto "496"
  shell: /bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    DART_HOME: /Users/runner/hostedtoolcache/dart/3.2.6/x64
    PUB_CACHE: /Users/runner/.pub-cache
    PULL_REQUEST_NUMBER: 496
    GH_TOKEN: ***
GraphQL: Field 'isMergeQueueEnabled' doesn't exist on type 'PullRequest' (query PullRequestByNumber.repository.pullRequest.isMergeQueueEnabled)

coverage

flutter の時と同じノリで簡単い lcov 形式で出力できると思ってたんだけど、package 追加しないとできなそう。
See: dart-lang/test#1265

言っても簡単に終わるのでやろうかな。

future; migrate to ffigen

binding の実装はおおむね終わったものの、binding 定義を yaml に押し込める ffigen はやはり魅力的。
しかし、ffigen はまだ実験段階であり安定してなかったり、いくらか機能が欠けていたりするため、まだ採用には至ってない。
(#10 に書いたように inline Array の workaround 対応は参考にしてる。)

用途を考慮すると、課題は以下の通り。これらの対応が入って動くようになったら移行を検討したい。暇があれば contribute したり issue 立てたりしよう。

  • inline array in Structs (dart-lang/sdk#35763) 。根本的には dart 側の進捗に依存するが、繋ぎとして ffigen は workaround 対応を入れてるのが素晴らしい。
    • これ、結構重要なので dart:ffi の今後に期待。
    • 愚直にやろうとすると、構造体を丸ごと解釈しなきゃいけなくてだいぶ怠い。 C の Struct を丸ごと Pointer<Uint8> でとってきてがんばる感じになるやつ。
  • null safety (dev ブランチが一部対応漏れてた)
  • ポインタ前置き宣言への対応。 Foo* foo に対応できてなかった気がする。もちろん、Foo *foo はいけてた。
  • Nested Structs (dart-lang/native#541) 。今は dev リリースには入ってる状態だが、dev はエラー出て動かなかった..
  • 生成ファイルがだいぶデカくなるからか、IDE での補完がだいぶ重くなってしまった。ffigen に関数単位でのフィルタリング機能があれば解消される。期待。

#38 もあるけど、まあそれはだいぶ先になりそう。

actions/labeler@v5 label config has been changed?

Run actions/labeler@v5
  with:
    repo-token: ***
    dot: true
    configuration-path: .github/labeler.yml
    sync-labels: false
The configuration file (path: .github/labeler.yml) was found locally, reading from the file
Error: Error: found unexpected type for label 'GitHub Actions' (should be array of config options)
Error: found unexpected type for label 'GitHub Actions' (should be array of config options)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.