This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-01-31
Channels
- # aleph (24)
- # announcements (2)
- # aws (1)
- # babashka (2)
- # beginners (46)
- # calva (15)
- # chlorine-clover (1)
- # clojure-europe (27)
- # clojure-nl (3)
- # clojure-norway (13)
- # clojure-uk (7)
- # clojurescript (16)
- # datomic (29)
- # emacs (4)
- # fulcro (16)
- # hugsql (6)
- # hyperfiddle (65)
- # lsp (9)
- # malli (3)
- # off-topic (29)
- # pedestal (1)
- # releases (1)
- # shadow-cljs (52)
- # specter (5)
- # xtdb (1)
Hi. I have upgraded shadow-cljs
from version 2.25.?
to the latest version. Now I get a compilation error: failed to convert sources
caused by IllegalArgumentException: CALL 13415:0 [length: 2011] [free_call: 1] [source_file: node_modules/@firebase/firestore/dist/index.cjs.js]
. Full output here: https://gist.github.com/witek/00a5669be5821c6d84d7851bcf1a909a
The latest shadow-cljs version without this error is 2.26.6
. The first version signaling this error is 2.27.1
.
Any hints how to tackle this problem?
try if setting :compiler-options {:output-feature-set :es-unstable}
makes that error go away also
This makes my compilation crash with an other error: Extending an existing JavaScript type - use a different symbol name instead of js/Symbol e.g symbol
. This comes from my lilactown/helix {:mvn/version "0.2.0"}
dependency.
it has been fixed but I don't think there is a new version yet https://github.com/lilactown/helix/commit/35127b79405e5dff6d9b74dfc674280eb93fab6d
@U2ERGD6UD Have you been able to make it working? I'm having the same issue, but even 2.26.x (tried 5,6,7) doesn't help.
Looks like some problem with firebase package....
I've been able to make it work on 2.25.10.
I tried setting :compiler-options {:output-feature-set :es-unstable}
but am encountering the same issue as @U4EFBUCUE on any shadow-cljs >= 2.26.1
. My error also points to Firebase's Firestore package
which version exactly do you use? I reverted that closure-compiler upgrade, so it should be fine?
I tried with the 2.26.6
, then 2.27.4
- both resulted in similar errors
2.25.10
is the most recent version that works for me
I generally bump version numbers when I change closure versions, so 2.25 -> 2.26 included a closure update
ClojureScript 1.11.60 and shadow-cljs 2.26.7 works for me. As I remember, I had to downgrade both.
Thanks Witek. Unfortunately that doesn't seem to work for me
I guess I'll stay on 2.25.10
for now
Yeah, It's 2.25.10 that is able to compile firebase package. @U05224H0W is there a way to override closure version with shadow-cljs or best practices in debugging what is wrong?
unfortunately that often is not possible, since the closure-compiler keeps making breaking changes to the code
renaming functions and stuff, so a prior version might not work when an old name is used
🥲 Why would they do that.... Where do I check the closure compiler version the specific version of shadow-cljs uses?
Perfect, thank you so much!
One interesting thing is that Witek’s original bug report references a similar Firebase issue but he was able to resolve with 2.26.7. @U2ERGD6UD , which Firebase JS version are you on?
@U4EFBUCUE curious if you found a solution or if you’re remaining on 2.25.10
Hey, haven't had a chance to look for a solution yet. Sticking to 2.25.10 for now.
Hi all, I was toying around with libp2p
and stumbled over this:
Failed to inspect file
[...]/libp2p-cljs/node_modules/libp2p/dist/src/libp2p.js
Errors encountered while trying to parse file
[...]/libp2p-cljs/node_modules/libp2p/dist/src/libp2p.js
{:line 39, :column 4, :message "'}' expected"}
Where this is the part of the js file:
27 import { DefaultTransportManager } from './transport-manager.js';
28 import { DefaultUpgrader } from './upgrader.js';
29 export class Libp2pNode extends TypedEventEmitter {
30 peerId;
31 peerStore;
32 contentRouting;
33 peerRouting;
34 keychain;
35 metrics;
36 services;
37 logger;
38 components;
39 #started;
40 #log;
41 constructor(init) {
42 super();
43 // event bus - components can listen to this emitter to be notified of system events
44 // and also cause them to be emitted
It appears to me that it's because of that new (weird) #foo
private member symbols in javascript. How to handle this situation :thinking_face:if you are building for the browser the only option is using a secondary bundler to process the npm files https://shadow-cljs.github.io/docs/UsersGuide.html#js-provider-external
looks like its gonna take a while until closure supports this https://github.com/google/closure-compiler/issues/2731#issuecomment-1915863447
I'm still confused about why private fields are suddenly considered a good idea in javascript. But thanks for the information.
This is my cljs file
(ns foo.main
(:require ["libp2p"]))
why not?
I'm trying to run an express service for a binary script.
I want to load public
folder.
when working locally, everything works fine, since the main
and public
are in the same hierarchy.
but when packaged, the main
is in out
which is 1 additional hierarchy
When developing locally, it works fine, but when packaged, the