Hi,

I've recently heard about the locals clearing feature of Clojure 1.2 (from a 
recent post by Ken Wesson), and decided to test-drive it. Here is a 
contrived example:

(defn garbage []
  (make-array Byte/TYPE 10485760))

(defn -main [& args]
  (let [a (garbage)
        b (garbage)
        c (garbage)
        d (garbage)
        e (garbage)
        f (garbage)
        g (garbage)
        h (garbage)]
    (println "OK")))

Now, when I build this with Leiningen and try to run under -Xmx20M or so, it 
bombs out on me with an OOME. Changing the let to a bunch of nested lets 
doesn't help, nor does migrating to Clojure 1.3alpha4. 

Shouldn't the locals clearing feature detect that each of the a-h locals is 
no longer needed and clear them right after allocation? Is this a 
misconception on my part about how this works? Or is something weird going 
on here? 

Thanks,
-Daniel

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to