3 ms·
PyPy is totally not like LLVM in many regards. It targets a very different demographics. Some differences: * RPython comes with a good garbage collector * the
by fijal 14y ago
PyPy is totally not like LLVM in many regards. It targets a very different demographics. Some differences:
* RPython comes with a good garbage collector
* the language where you specify what's going on is RPython in which you write an interpreter. Then you get a JIT using a few hints. This is difference than "interpreter in C + compiler to LLVM" scenario by quite a bit.
* RPython comes with a set of data structures that are higher level (lists, dicts, etc.) and is a GCed language. JIT is also well aware of those.
- fusiongyro 14y agoDo you know what an analogy is?
- llimllib 14y agoThere's no need to be a jerk.
- knowtheory 14y agoYeah, although there may be other ways to phrase your admonishment which people will be more receptive to. "C'mon dude, don't let flaming beget flaming."
- fijal 14y agoI'm actually not a native speaker, so indeed, I might not know. I checked in the dictionary though. This is an analogy, but not a very good analogy, because of the reasons that I pointed out. Are you disagreeing with any particular reasoning there? Or should I just say "they're similary, but"?
- knowtheory 14y agoWell, so you're right and you're wrong. You're right that the analogy doesn't quite capture everything here. On the other hand the analogy gets across most of the point. I would have said "That's mostly right, but the interesting thing about sharing code on a VM is access to VM features and code shared on the platform, not just that it's possible to decouple a front end from a VM." or something to that effect.
- fusiongyro 14y ago"They're similar, but" is much better than "is totally not like." The point of the analogy is to give a high-level view, not to achieve 100% accuracy at the lowest levels of detail.
- sirclueless 14y agoAn analogy does not require that the items involved actually be similar, only that the relationships in each are the same. For example, "Gasoline is to cars, as sunlight is to trees" is a perfectly good analogy, even though gasoline is nothing like sunlight, and cars are nothing like trees. In much the same way, comparing "Apple writing a C interpreter on top of llvm" to "Alex Gaynor writing a Ruby interpreter on top of RPython" makes a very good analogy, even though Apple is not much like Alex Gaynor, Ruby is not much like C, and PyPy is not much like LLVM.
- gojomo 14y agoA good explanation, and further, many times a good analogy relies on the things being very different in every way except for the one way it intends to emphasize. An analogy is often a way of saying: "Let's focus on this (often very abstract) aspect of interesting similarities. Yes, you can easily point out many other dissimilarities. That ease means I'm not talking about those aspects, so if we understand each other those don't even have to be mentioned."
- drivebyacct2 14y agoI do, but I also appreciate further distinction between pypy and llvm in this context.
- llimllib 14y agoCompletely true, I was just trying to convey how different "building ruby on RPython/Pypy" is from "building ruby on top of python".
- simula67 14y agoSo its closer to JVM than LLVM (http://stackoverflow.com/questions/454720/what-are-the-differences-between-llvm-and-java-bytecode http://stackoverflow.com/questions/454720/what-are-the-diffe...)?
- Tobu 14y agoNot really. The LLVM analogy does capture the toolchain aspect; the RPython toolchain generates a JITted VM from an interpreter description.