This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-07-25
Channels
- # announcements (9)
- # babashka (38)
- # beginners (41)
- # biff (1)
- # clojure (19)
- # clojure-europe (7)
- # clojure-uk (2)
- # clojurescript (3)
- # code-reviews (30)
- # conjure (4)
- # cursive (8)
- # datomic (32)
- # docker (2)
- # emacs (7)
- # etaoin (2)
- # fulcro (37)
- # graphql (2)
- # jobs (1)
- # jobs-discuss (8)
- # leiningen (10)
- # lsp (36)
- # meander (4)
- # missionary (4)
- # nbb (12)
- # off-topic (1)
- # other-languages (10)
- # pathom (11)
- # re-frame (5)
- # reitit (4)
- # remote-jobs (3)
- # shadow-cljs (13)
- # sql (1)
- # tools-build (4)
- # tools-deps (31)
- # xtdb (2)
Is there something like warn-on-reflection for sci / babashka that warns the user when they are using some part of Clojure that isn't supported by sci + friends? Or perhaps something linter-based? I feel like there's this subset of Clojure now that you can choose to stay within. And if you choose to stay within it, you gain portability. Yet, I'm not certain what this subset is. Curious the journey to learn what this subset is should/could be. Just being able to copy a piece of Clojure code into a #scittle powered webapp is such a nice option to have.
Most of Clojure is supported, but there are some grey areas around protocols/reify/defrecord/deftype when you combine those things with one or more Java interfaces. Since in a native image you cannot create new Java types on the fly.
Here is the official list:
https://book.babashka.org/#differences-with-clojure
Although deftype
is now supported somewhat, if you don't add Java interfaces in the mix
the subset of Clojure i can use use as JVM Clojure, Clojurescript, Clojure as interpreted by Scittle, Clojure as interpreted by Sci in babashka, Clojure as interpreted by sci as a JVM lib
> defprotocol
and defrecord
are implemented using multimethods and regular maps. Ostensibly they work the same, but under the hood there are no Java classes that correspond to them.
Can I generally count on defrecord
and defprotocol
being available in “Common SCI”?
That diagram is lacking SCI on arduino 😉 😈
@U054UD60U do you have a link to a sci runtime for arduino?
I was snarky and I'd love to see one. At least for ESP32 and more powerful µP 🙂
I have worked with Mike on running clojurescript on ESP32. But you need a large memory version for the simplest task and it's rather slow
@U04V15CAJ the esp modules come as dev boards with USB for cheap. I can dig you up a link if interested
@U054UD60U I think you tried self-hosted CLJS right? This is a much larger JS blob than SCI
Yes, it's kind of self hosting but very limited.
How would that work? SCI hosted in JS or a native SCI on that platform?
Oh, how would this work?
I've documented that here: https://github.com/babashka/sci/blob/master/doc/libsci.md
Is there a way to "transpile" java to C sources? The devices I wanted to use do not support graalvm 😞
@U054UD60U Ah I see, 32bit?
The ESP32 has an Xtensa architecture.
And the most recent ones have Risk-V IIRC
That's sounds like a plan worth to explore.