Fork me on GitHub
#tools-deps
<
2020-05-29
>
jjttjj15:05:18

I'm trying to use andare, a replacement for core async with the same namespace hierarchy, in a project that also depends on things which depend on core.async (shadow-cljs specifically). However just adding core.async to the :exclusions for shadow-cljs seems to prevent it's namespaces which use core.async from working. Is there something I'm missing?

seancorfield15:05:02

@jjttjj Maybe shadow-cljs is AOT'd? That would be my guess. (your problem doesn't sound like it would be specific to Clojure CLI / deps.edn / tools.deps.alpha?)

thheller15:05:45

it is only AOT if you request the AOT variant

thheller15:05:57

I'm guessing that andare just isn't fully compatible? how does it fail?

jjttjj15:05:33

File: jar:file:C:\Users\justin\.m2\repository\thheller\shadow-client\1.3.2\shadow-client-1.3.2.jar!/shadow/util.cljs
failed to require macro-ns "shadow.util", it was required by "shadow.util"
Error in phase :compile-syntax-check
RuntimeException: No such var: ioc/state-machine

thheller15:05:10

guess that doesn't exist in andare? it is an internal cljs.core var

jjttjj15:05:56

Yup, I see it doesn't now, thanks

jjttjj15:05:33

It looks like shadow.util in shadow-client uses some core.async internals

thheller15:05:34

it does. I can probably remove it but I'm not sure trying to replace the entire core.async impl is sustainable

thheller15:05:53

you are doing this for self-hosted CLJS right?

jjttjj15:05:04

yes. I wouldn't necessarily request that either, just messing around right now šŸ™‚

jjttjj15:05:24

although it looks possible that your go! macro that requires it might not be used much at all in shadow

ghadi15:05:51

oh look, an incompatible thing with the same name

šŸ˜… 4
seancorfield15:05:23

^ That was my first thought too. Any "replacement" really should use at least a different root namespace, precisely to avoid these sorts of conflicts šŸ˜

dpsutton15:05:14

i think its so self-host can use it. it needs to be named the same

šŸ‘ 4
jjttjj15:05:16

makes sense. I'll prob just fork andare and rename things

dpsutton16:05:19

rename to what?

dpsutton16:05:49

> Andare preserves the namespaces present in core.async. Thus, bootstrap-compatible ClojureScript code that makes use of core.async can operate in self-hosted environments if you make the Andare artifact available for loading in lieu of the official core.async artifact.

seancorfield16:05:00

Also, none of this seems relevant to this channel's topic -- am I missing something there @jjttjj?

jjttjj16:05:34

Nope, sorry about that. Thought it might be tools.deps specific at first (relating to exclusions) but realize now that's not the case

FlavaDave21:05:02

Iā€™m trying to file a ticket at https://clojure.atlassian.net/projects/TDEPS/issues/?filter=allissues but it is saying Iā€™m not authorized to create issues. What is the best way for me to report an issue?

seancorfield21:05:45

Tag it with the tools.deps tag...

lvh21:05:56

ah, I thought that was just for discussion, not for bug reports

seancorfield21:05:41

@dgonsalves22 The About page explains why that exists https://ask.clojure.org/index.php/about and the official site's contributing page links to that forum https://clojure.org/community/contributing#_reporting_problems_and_requesting_enhancements /cc @lvh

šŸ™ 4
šŸ‘ 8