This is puzzling. I have just run some tests and top level data structures do 
appear to be eliminated.

For example: (def x {:a "XXXXXXXX" :b 2})

I was NOT able to find the string "XXXXXXXX" in the JavaScript compiled under 
":optimizations :advanced".

Can you provide any more clarity on this rule?


On Wednesday, 11 March 2015 13:49:52 UTC+11, David Nolen  wrote:
> If you want your library to be dead code elimination friendly don't use top 
> level data structures.
> 
> 
> It's a very simple rule.
> 
> 
> David
> 
> 
> On Tue, Mar 10, 2015 at 8:19 PM, Mike Thompson <[email protected]> wrote:
> This issue from David Nolen, caught my eye:
> 
> https://github.com/andrewmcveigh/cljs-time/issues/21
> 
> 
> 
> Feels like there is important information there, but I just don't know enough 
> to interpret what's said. Can anyone help?
> 
> 
> 
> If I have this:
> 
> 
> 
> (def x  {:a 1 :b 2})
> 
> 
> 
> David is saying that x can't be dead-code-eliminated. Correct?
> 
> 
> 
> If so, the solution he talks about is?
> 
> 
> 
> ;; Replacing PersistentHashMaps with functions?  Can't be right. I think I'm 
> being too literal here
> 
> (def  x  ((fn []  {:a 1 :b2})))
> 
> 
> 
> ;; more likely this?
> 
> 
> 
> (defn x
> 
>   []
> 
>   {:a 1 :b 2})
> 
> 
> 
> Ie. you must now "call" x to get the map.
> 
> 
> 
> If this solution is the right one, doesn't that mean we would be 
> inefficiently constructing the (potentially large) hashmap inside x on each 
> call.
> 
> 
> 
> --
> 
> Mike
> 
> 
> 
> 
> 
> --
> 
> Note that posts from new members are moderated - please be patient with your 
> first post.
> 
> ---
> 
> You received this message because you are subscribed to the Google Groups 
> "ClojureScript" group.
> 
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> 
> To post to this group, send email to [email protected].
> 
> Visit this group at http://groups.google.com/group/clojurescript.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to