Wow I can't believe my silly question actually led to a whole independent project!
On Friday, February 10, 2012 9:36:53 AM UTC-6, tbc++ wrote: > > >> I have some set of algorithms that needs such-and-such operations to > be as fast as possible. Can I create a VM that is tailored for that? > > Yes, this is basically what PyPy does for Regexes, they have a custom > regex engine that has "can_enter_jit" in it. So basically what you get > is a jitted regex engine. The results are astounding: > > http://morepypy.blogspot.com/2010/06/jit-for-regular-expression-matching.html > They show a 8x speed improvement over the Java Regex engine. Now for > core.logic...that's a bit of a different story. > > The thing about tracing JITs is that they excel at making small tight > loops extremely efficient, so depending on the implementation of > core.logic, that may or may not apply. > > > >>It would be pretty impressive if one could parameterize the VM space, > and access different parts of that space within a contiguous clojure > program. > > So that's a bit hard due to the way PyPy implements types...or > doesn't. PyPy does not define what a type is at all. Instead it leaves > the typing system open to the developer of the interpreter. So a C# > interpreter may define a type's vtable as a list, and use ids to > figure out what method to run, or a Python jit may just use a > dictionary to look up a method on a given type. Because of this, the > JIT really has no way to perform interop between two types. On top of > that, PyPy does not allow loading any modules at runtime. All interop > with outside libs must be through FFI (like ctypes in Python). So > actually the standard library in pypy is 100% pure python code that > makes FFI calls to C Libraries. In CPython, there is a mixture of C > and Python code. > > Timothy > > -- 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