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

[Dart] Feature tracking #2877

Open
47 of 67 tasks
alfonsogarciacaro opened this issue May 11, 2022 · 8 comments
Open
47 of 67 tasks

[Dart] Feature tracking #2877

alfonsogarciacaro opened this issue May 11, 2022 · 8 comments

Comments

@alfonsogarciacaro
Copy link
Member

alfonsogarciacaro commented May 11, 2022

Feature tracking issue for Dart language support:

(see #2703 for Rust)

  • Dart AST
  • Dart AST Printer
  • Fable2Dart:
    • modules
    • primitives
      • bool
      • char
      • string
      • integers
      • floats
    • control flow
    • tail call optimization
    • functions
    • lambdas
    • custom operators
    • records
    • anonymous records (compiled as tuples for now)
    • unions
    • tuples
    • arrays
    • lists
    • sequences
    • options
    • results
    • choices
    • refcells, byrefs
    • enums (compiled as ints)
    • classes
    • structs
    • object expressions
    • interfaces (most)
    • imports
    • comparers (some)
    • conversions
    • formatting
    • string interpolation
    • exceptions
    • reflection
    • async
    • threading
  • fable-library-dart
    • Array
    • ResizeArray
    • List
    • Seq
    • Option
    • Range (some)
    • Result
    • Choice
    • Map
    • Set
    • Dictionary (replacements, native Map)
    • HashSet (replacements, native Set)
    • String (except formatting)
    • Char
    • RegExp
    • Decimal
    • BigInt
    • Guid
    • DateTime
    • DateTimeOffset
    • TimeSpan (compiled as Dart Duration)
    • Timer
    • Event
    • Observable
    • other FSharp.Core modules
    • other .NET BCL implementations
@alfonsogarciacaro
Copy link
Member Author

@dbrattli You may want to create a similar issue to track Python progress. This way users can easily see what's currently supported as we started publishing alpha releases of Snake Island. I also created a project here but maybe for now this kind of issue trackers are more convenient. We can go back to the project when users start reporting issues 👍

@ncave
Copy link
Collaborator

ncave commented May 11, 2022

@alfonsogarciacaro Fixed a typo.

@phrmoy
Copy link

phrmoy commented Aug 3, 2023

Howdy! Cool project! Is this still being actively developed?

@smoothdeveloper
Copy link
Contributor

@phrmoy I haven't used the dart target, but I think we are at a stage where it is for people to use it and report what is missing for their use cases, or making their life difficult with the target.

Missing pieces in the list above don't preclude leveraging what is already shipping, AFAIU.

@MangelMaxime
Copy link
Member

Indeed, the project is in Beta

Users are encourage to try it out to help with development and give feedback

I didn't write the documentation for this target, because I don't know Dart and didn't have the time to learn it at the time. If someone want to steps in to help on it it would be of great help.

Doing the documentation, also allows to raise strange behaviour like I did for Python. And can help, improving the consistency and stability of the target when maintainers steps in to fix them :)

@marenovakovic
Copy link

marenovakovic commented Jan 29, 2024

How does async not being ready really work? will async code just be sync, will it not work at all or something totally different?
From what I see it's not compiling, it expects AsyncBuilder to be generated inside fable_modules but AsyncBuilder doesn't exist?
Can I make it work somehow? Making it synchronous works too I just want to be able to do async/await and call it both ways, F# -> Dart and Dart -> F#.

@MangelMaxime
Copy link
Member

@marenovakovic In order to have async working, src/fable-library-dart/Async.dart and src/fable-library-dart/AsyncBuilder.dart needs to be implemented.

We currently don't have an active maintainer for the dart target. It believe i was mostly done by Alfonso at the time.

If someone with Dart knowledge want to give it a try, we will welcome the PR and try to help where we can. Looking at how others target like JavaScript, Python or Rust implements would be a good starting point.

@marenovakovic
Copy link

I see. Thank you. I'll take a look at it soon and maybe even create MR, who knows 😀

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

No branches or pull requests

6 participants