This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-04-22
Channels
- # adventofcode (12)
- # announcements (17)
- # babashka (46)
- # beginners (105)
- # calva (7)
- # chlorine-clover (7)
- # cider (9)
- # clj-kondo (41)
- # cljsrn (16)
- # clojure (67)
- # clojure-australia (1)
- # clojure-europe (24)
- # clojure-france (6)
- # clojure-germany (10)
- # clojure-italy (1)
- # clojure-losangeles (3)
- # clojure-nl (4)
- # clojure-uk (11)
- # clojurescript (8)
- # cursive (8)
- # data-oriented-programming (1)
- # data-science (1)
- # datomic (11)
- # defnpodcast (4)
- # events (1)
- # fulcro (34)
- # graalvm (6)
- # helix (3)
- # jackdaw (19)
- # jobs-discuss (1)
- # leiningen (9)
- # luminus (2)
- # malli (15)
- # mathematics (2)
- # meander (5)
- # mental-health (1)
- # off-topic (4)
- # pathom (23)
- # podcasts-discuss (1)
- # polylith (4)
- # quil (3)
- # re-frame (81)
- # react (1)
- # reagent (19)
- # reitit (4)
- # releases (1)
- # reveal (11)
- # shadow-cljs (54)
- # specter (14)
- # tools-deps (16)
- # vscode (2)
- # xtdb (3)
Hey team! Curious q — has anyone played with using esbuild instead of closure compiler for cljs? Their speed seems so enticing. From a light look they have tree shaking, but don’t compare yet in terms of advanced optimization. I wonder if this can be mitigated though—may spend some time poking around. If others have and got thoughts, please share!
@stopachka esbuild doesn't understand the closure js format used by the closure-library and cljs, so using it is not an option.
Gotcha, thanks @thheller. By doesn’t understand, is it that it won’t compile, or won’t do tree shaking correctly?
Hi!
I have a big state atom (fulcro) that I save to browser local storage. I add a watch on the atom. I wrote a diffing algorithm that only saves or deletes changes. I want the saving to occur after 2 seconds of idle time. In clojure I do similar things with a future that I put into an atom. Calls check the atom to see whether there is already a future pending and cancel the running future and create a new one. I found some examples here https://github.com/alandipert/storage-atom/blob/master/src/alandipert/storage_atom.cljs that use goog.Timer to do something similar. I took this, as well as plato, as inspiration but I need to retain the before-state of the watch so the actual diffing keeps the original before-state when the timer gets canceled. So instead of putting the goog.Timer directly into the atom I put a map of {fn: timer-fn :old old-state}
into the atom. It seems to work fine, but in the last weeks my app developed a memory leak and I do not know whether it could be related to this part of my code.
So my questions are:
• what would be an idiomatic way to do delayed saving in cljs?
• Are there good blog-posts on memory leaks in clojurescript?
• How does one hunt memory leaks?
• Are there any examples or discussions of how to go about this?
sorry if this is redundant, just to be sure, have you seen this? https://swannodette.github.io/2013/07/12/communicating-sequential-processes/
Hello. Cloned 2 simple VSCode plugins, written in cljs and built with shadow-cljs. Trying to shadow-cljs release :extension
on both of them and got extension.js
a half smaller than if I installed that extensions via VSCode, and my files doesn't work. Where I'm wrong? And how to build them correctly?