On Thursday, November 17, 2011 11:07:02 AM UTC-5, tbc++ wrote: > > True...true, it supports it, but it's still a "2nd class citizen". For > instance, we don't have lein, ring, parts of contrib, IDEs, etc. All > the examples, all the books are all about Clojure on the JVM. Do > anything else and you can forget using Clojars, and 90% of the > ecosystem built around Clojure. > Regardless of what you label it, I agree with you in that the other clojures lack great ecosystem tools.
> Finally Clojure does make a few assumptions about the underlying VM. > Clojure assumes that the entire system will run on a VM that only > supports OOP. Hence every single function is a object. Now look at > PyPy or JS, here functions are true values in the VM. So the best way > to implement Clojure in PyPy would be to take advantage of these > facilities. But then you're really re-defining what clojure is and how > it runs. PyPy has a very advanced JIT that works well with dynamic > typing, but if you implement stock Clojure on PyPy you'd be ignoring > all that. Look at RT.java, you'll see tons of "if (obj is ISeq)... if > (obj is Array)...". Much of that could be thrown away in a PyPy > implementation, but if you threw that away, now you have a headache > when the Clojure devs start updating the code, and you have to port > those changes to your code base. > I find this response the most interesting with respect to the OP's question. Can you elaborate how you re-define what clojure is? Then assuming we make no claim on ease of updating or strict adherence to what Clojure is defined to do, in other words we are making an evolution of ClojureScript, what would the PyPy implementation look like? How would things be simpler, and more complicated? What's the minimal set of functionality that needs to be implemented in RPython so that we can begin to define clojure.core. -- 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