From alex.gaynor at gmail.com Wed Jun 19 16:05:34 2013 From: alex.gaynor at gmail.com (Alex Gaynor) Date: Wed, 19 Jun 2013 07:05:34 -0700 Subject: [vm-papers-discuss] Welcome Message-ID: Hi everyone (is anyone here yet?), Welcome to the list. It's my hope that this list can serve as a resource to a wide community of people working on, and interested in, VMs and compilers. Looking forward to some great discussions. Alex -- "I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) "The people's good is the highest law." -- Cicero GPG Key fingerprint: 125F 5C67 DFE9 4084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex.gaynor at gmail.com Thu Jun 20 07:39:07 2013 From: alex.gaynor at gmail.com (Alex Gaynor) Date: Wed, 19 Jun 2013 22:39:07 -0700 Subject: [vm-papers-discuss] "Dynamo: A Transparent Dynamic Optimization System" Message-ID: Hey everyone! While we wait for the new and exciting papers to roll in (if you're waiting for something to send one, don't wait, send it now!), I figured I'd get us started with an older paper: http://cseweb.ucsd.edu/classes/sp00/cse231/dynamopldi.pdf For those who don't recognize it, this is one of the original tracing JIT papers. What do you think, is this a practical approach, will it ever catch on? :) I think one of the really key insights that hasn't come to fruition from this paper is the ability to do inlining across shared objects at runtime (in a statically compiled language context) Alex -- "I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) "The people's good is the highest law." -- Cicero GPG Key fingerprint: 125F 5C67 DFE9 4084 -------------- next part -------------- An HTML attachment was scrubbed... URL: From evilpies at googlemail.com Thu Jun 20 11:04:03 2013 From: evilpies at googlemail.com (Tom Schuster) Date: Thu, 20 Jun 2013 11:04:03 +0200 Subject: [vm-papers-discuss] Hello! Message-ID: I really hope that this is going to take of. I used to collect resources mostly related to VMs and Compilers on this https://wiki.mozilla.org/JavaScript:Compiler_References. The reddit /r/compilers community also occasionally has new posts, but is mostly dead. I hope this is going to be a thing! Cheers, Tom -------------- next part -------------- An HTML attachment was scrubbed... URL: From fedor at indutny.com Thu Jun 20 15:43:50 2013 From: fedor at indutny.com (Fedor Indutny) Date: Thu, 20 Jun 2013 15:43:50 +0200 Subject: [vm-papers-discuss] Hello! In-Reply-To: References: Message-ID: Hoya, I've some stuff on my side as well: https://github.com/indutny/candor/wiki/Compiler-papers ;) Its not as comprehensive and some papers from Tom's list appears in mine as well, but there're also a few interesting ones. Cheers, Fedor. On Thu, Jun 20, 2013 at 11:04 AM, Tom Schuster wrote: > I really hope that this is going to take of. I used to collect resources > mostly related to VMs and Compilers on this > https://wiki.mozilla.org/JavaScript:Compiler_References. The reddit > /r/compilers community also occasionally has new posts, but is mostly dead. > > I hope this is going to be a thing! > > Cheers, > Tom > > _______________________________________________ > Vm-papers-discuss mailing list > Vm-papers-discuss at python.org > http://mail.python.org/mailman/listinfo/vm-papers-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From redline6561 at gmail.com Thu Jun 20 15:45:51 2013 From: redline6561 at gmail.com (Brit Butler) Date: Thu, 20 Jun 2013 09:45:51 -0400 Subject: [vm-papers-discuss] Recent favorite: Stochastic Superoptimization Message-ID: Hi there. I'm a rank amateur when it comes to language and VM implementation though the topic has always fascinated in me. Recently, I was excited to see this paper. [0] I like that they frame optimizing IR as a search problem. It also reminds me of a weird blog post by David Barbour. [1] In general, I would be interested in seeing more cross-pollination between the AI and Compiler communities. How else are we supposed to get a sufficiently smart compiler? ;) I tend to use Steel Bank Common Lisp for my hobby hacking but it's 400kloc! More and more I find myself thinking about ways to simplify or reduce complexity in our software systems. I'm not even sure how to start comprehending/hacking on something that size and out of my domain. More on that another time, perhaps. [0]: http://cs.stanford.edu/people/eschkufz/research/asplos291-schkufza.pdf [1]: http://awelonblue.wordpress.com/2012/08/01/natural-programming-language/ Regards, Brit Butler http://redlinernotes.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From redline6561 at gmail.com Thu Jun 20 15:55:38 2013 From: redline6561 at gmail.com (Brit Butler) Date: Thu, 20 Jun 2013 09:55:38 -0400 Subject: [vm-papers-discuss] Hello! In-Reply-To: References: Message-ID: Hello again, I have a collection as well. It lives at http://redlinernotes.com/docs/Classics/plt/ My success at actually getting *through* that collection is another matter entirely. :P Regards, Brit Butler http://redlinernotes.com/ On Thu, Jun 20, 2013 at 9:43 AM, Fedor Indutny wrote: > Hoya, > > I've some stuff on my side as well: > https://github.com/indutny/candor/wiki/Compiler-papers ;) > > Its not as comprehensive and some papers from Tom's list appears in mine > as well, but there're also a few interesting ones. > > Cheers, > Fedor. > > > On Thu, Jun 20, 2013 at 11:04 AM, Tom Schuster wrote: > >> I really hope that this is going to take of. I used to collect resources >> mostly related to VMs and Compilers on this >> https://wiki.mozilla.org/JavaScript:Compiler_References. The reddit >> /r/compilers community also occasionally has new posts, but is mostly dead. >> >> I hope this is going to be a thing! >> >> Cheers, >> Tom >> >> _______________________________________________ >> Vm-papers-discuss mailing list >> Vm-papers-discuss at python.org >> http://mail.python.org/mailman/listinfo/vm-papers-discuss >> >> > > _______________________________________________ > Vm-papers-discuss mailing list > Vm-papers-discuss at python.org > http://mail.python.org/mailman/listinfo/vm-papers-discuss > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pvk at pvk.ca Thu Jun 20 17:26:20 2013 From: pvk at pvk.ca (Paul Khuong) Date: Thu, 20 Jun 2013 11:26:20 -0400 Subject: [vm-papers-discuss] Recent favorite: Stochastic Superoptimization In-Reply-To: References: Message-ID: <51C31F1C.8080604@pvk.ca> This is veering a bit off course, into general compilery stuff. Tell me if it's not topical enough. Brit Butler wrote: > Recently, I was excited to see this paper. [0] I like that they > frame optimizing IR as a search problem. [...] In general, I would > be interested in seeing more cross-pollination between the AI and > Compiler communities. How else are we supposed to get a sufficiently > smart compiler? ;) I'm going to preach for my parish and suggest that you look for cross-pollination with the operations research [*] community ;) This is where register allocation as graph colouring, as integer linear programming or as binary quadratic programming come from. More importantly, this is also where efforts to integrate phases (e.g. instruction selection and scheduling) find their tools. OR practicioners regularly tackle an issue that's fundamental in compiler development: ordering phases. A native code compiler must decide how high-level constructs are rewritten to improve performance and lowered into assembly language, and how to schedule instructions and allocate registers (plus other decisions, e.g. whether to represent data in boxed or machine native format). Solving for all these decisions simultaneously is daunting and doesn't seem feasible. The usual solution in compilers is to make a few decisions at a time, in sequence. OR can offer mathematically grounded (and practical) strategies to decompose large and complicated problems into tractable components; from the exact method (i.e. my) camp, Lagrangian and [generalised] Benders decomposition come to mind. I don't really follow metaheuristics, but Threshold ascent on graph (a single-player adaptation of Monte Carlo tree search) seems like a nice approach for planning problems. Sadly, it's hard to apply mathematical programming techniques without a formal model of the problem we're trying to solve. [*]: My PhD thesis is that it's practical to solve (not to optimality, but well enough and with a proof of solution quality) location problems to guide the daily operations of country-wide distribution networks. > I tend to use Steel Bank Common Lisp for my hobby hacking but it's > 400kloc! More and more I find myself thinking about ways to simplify > or reduce complexity in our software systems. Same here. Hopefully, we can find simple model that yield equally as good binaries as our current tools. Figure 3 in Schkufza et al's Stochastic Superoptimisation is encouraging. Moreover, the Stabilizer team's findings certainly indicate that what is done in O3 isn't generally useful compared to O2 (or that we should work better at placing code and data in memory). > I'm not even sure how to start comprehending/hacking on [SBCL] > something that size and out of my domain. Short answer: Anywhere ;) Paul Khuong From me at mrale.ph Thu Jun 20 18:15:57 2013 From: me at mrale.ph (Vyacheslav Egorov) Date: Thu, 20 Jun 2013 18:15:57 +0200 Subject: [vm-papers-discuss] "A portable optimizing compiler for Modula-2" Message-ID: http://dl.acm.org/citation.cfm?id=502905 Marc Feeley linked me to this paper yesterday and I found it extremely interesting. It might not be technically relevant anymore, but it provides some interesting historical perspective. Taking right shortcuts as an optimization technique :-) Quote to spark your interest: """ The optimizations implemented were those we expected to have the greatest impact on well-written Modula-2 programs. Our intention was not to make the optimizer safe for arbitrary programs, but to do a good job of optimizing those programs that could be safely handled. For example, in Modula-2, aliasing may be introduced by taking the address of a local variable and storing it in a pointer. In Modula-2, such programs must import functions and types from a module called "system". Although the optimizer will safely handle any program that does not import from system, it does not make worst case assumptions for those programs that do. A survey of the literature on optimization uncovers many techniques that are hard to understand, harder to implement, more general than necessary, and of marginal value. """ Ah, good old days when people did not care about total correctness that much :) -- Vyacheslav Egorov From geoffgole at gmail.com Fri Jun 21 06:29:21 2013 From: geoffgole at gmail.com (Geoff Gole) Date: Fri, 21 Jun 2013 12:29:21 +0800 Subject: [vm-papers-discuss] Hello! Message-ID: Hello, all. I'll chip in with Otraub's thesis on linear scan allocation: www.eecs.harvard.edu/hube/publications/otraub-thesis.pdf By the way Tom, some of the links at https://wiki.mozilla.org/JavaScript:Compiler_References seem to be broken at the moment. -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris at chrisseaton.com Mon Jun 24 19:33:34 2013 From: chris at chrisseaton.com (Chris Seaton) Date: Mon, 24 Jun 2013 10:33:34 -0700 Subject: [vm-papers-discuss] Do people want some structure to this? Message-ID: Hello all, I'm Chris, I'm a PhD student working on languages and parallelism. Do people want some structure to this list? At the moment people are chipping in with interesting tit bits they've seen, but how about we all pick one paper, give ourselves a week to read it and then we can come back and have a discussion about it? We could volunteer papers - perhaps ones we haven't read but have been meaning to (I'm sure we all have a big backlog of reading) and that are freely available. That way people with more experience have an excuse to read something new, and newbies will get a more in-depth discussion of a single paper with everyone contributing. I volunteer this paper about using machine learning in compiler phases in GCC - not a VM but still totally relevant. G. Fursin, C. Miranda, O. Temam, M. Namolaru, E. Yom-Tov, A. Zaks, B. Mendelson, E. Bonilla, J. Thomson, H. Leather, C. Williams, M. O?Boyle, P. Barnard, E. Ashton, E. Courtois, and F. Bodin. MILEPOST GCC: machine learning based research compiler. In Proceedings of GCC & GNU Toolchain Developers? Summit, 2008. Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From yawn.localhost at gmail.com Tue Jun 25 12:30:43 2013 From: yawn.localhost at gmail.com (yawnt) Date: Tue, 25 Jun 2013 12:30:43 +0200 Subject: [vm-papers-discuss] =?utf-8?q?_Do_people_want_some_structure_to_t?= =?utf-8?q?his=3F?= In-Reply-To: References: Message-ID: works for me :D -- yawnt -------------- next part -------------- An HTML attachment was scrubbed... URL: