ClojureDart
ClojureDart copied to clipboard
Clojure dialect for Flutter and Dart
The compiler fails when one of the cljd files is not readable during cljd compilation. This can happen because I compulsively save one by doing several small updates in a...
Currently clojure functions compile to either classes or functions. Here I propose we get rid of emitting Dart functions and always compile to classes because: * Dart overcaptures https://github.com/dart-lang/sdk/issues/36983 *...
Magicasting is the process of generating adapter code when passing an argument whose runtime type is unknown is incompatible with the statically expected type. This is how for example a...
Lifting statements out of expressions is a concern through all the compiler `emit-*` functions. I propose we extract that concern into a distinct pass. Currently we have ``` text -(reader)->...
Dart has [conditional importing](https://dart.dev/guides/libraries/create-packages#conditionally-importing-and-exporting-library-files) to deal with web vs native. Clojure has conditional readers. How do we expose Dart affordances and can we do it with conditional reading?
Dart has `await for` to iterate over streams, we don’t have anything like this. `.forEach` is less powerful (you can `await` inside an `await for` and it will pause/resume the...
Currently `:bg-watcher` only allows for one binding: it can only listen to one stream/etc. This creates the need for utilities (like [switchmap](https://pub.dev/documentation/stream_transform/latest/stream_transform/Switch/switchMap.html)) to compose a single stream so as to...
`:bg-watcher` only allows one binding currently. Extending it to support multiple bindings with switchmap-like semantics (a change in a former binding trigger cancellation of later subscriptions) would simplify a lot...
The problem is allowing a package (typically a CLJC package) to declare dependencies to a Dart package and this dependencies declaration to be preserved irrespective of the packaging and of...
We sometimes need to use different flutter libs when targetting different platforms. Dart allows [conditional imports/exports](https://dart.dev/guides/libraries/create-library-packages#conditionally-importing-and-exporting-library-files). Aleed on slack pointed to [cljs conditional reading](https://shadow-cljs.github.io/docs/UsersGuide.html#_conditional_reading).