From ... Path: archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!diablo.theplanet.net!newsfeed.esat.net!nslave.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: Benefits of moving from Python to Common Lisp? References: <8827e15d.0111132137.5beb1809@posting.google.com> <3BF2E82C.D0FB6320@removeme.gst.com> <7xy9l9ne1b.fsf@ruckus.brouhaha.com> <7xhervy3v9.fsf@ruckus.brouhaha.com> <4nofm2bzbm.fsf@rtp.ericsson.se> <87bsi2d9bc.fsf@orion.bln.pmsf.de> Mail-Copies-To: never From: Erik Naggum Message-ID: <3214951596835856@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 30 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 17 Nov 2001 02:06:39 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader1.kpnqwest.net 1005962799 193.71.66.49 (Sat, 17 Nov 2001 03:06:39 MET) NNTP-Posting-Date: Sat, 17 Nov 2001 03:06:39 MET Xref: archiver1.google.com comp.lang.lisp:20175 * "Pierre R. Mai" | When CMU CL was ported to x86 in the 90s, keeping up this partitioning | scheme would have resulted in very bad performance, given the relative | scarcity of general purpose registers on x86 machines, and the | resulting register pressure. However, this performance issue is largely gone in more modern members of the IA32 family. Good scheduling of stack-to-register operations will result in no worse performance than if you have many more registers. It is amazing what Intel has managed to do with the 8080 instruction set. :) Most, if not all, of the register starvation issues, which were very real only a few years ago, are now _only_ an issue if you do poor instruction scheduling, as when you generate code for the old members of the family, where such operations would not have been pipelined and the memory waits were much, much longer. Generating code for a (80)686 is very different from generating code for an 80386, if you want optimal performance. In effect, you have to generate code for the underlying machine and then figure out how to express this in the relatively high-level instruction set, which only accidentally runs old 386 code fairly fast. Really good performance on modern members of the IA32 family will produce really poor performance on old members. I suspect that it costs a hell of a lot of money to keep up with this and that much old-style optimization is going on in less than fully supported compilers. /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate. -- Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.