Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'binary': 0.05; 'memory.': 0.05; 'things.': 0.05; 'subject:Python': 0.05; 'indicated': 0.07; 'indeed,': 0.09; 'lawrence': 0.09; 'patches': 0.09; 'responding': 0.09; 'cc:addr:python-list': 0.10; 'systems.': 0.12; 'fix': 0.14; '>>>': 0.14; 'dec': 0.14; '1990': 0.16; 'assembler': 0.16; 'awesome.': 0.16; "didn't,": 0.16; 'function?': 0.16; 'reasonably': 0.16; 'reboot': 0.16; 'specific.': 0.16; 'subject: \n ': 0.16; 'trap': 0.16; 'wed,': 0.18; 'wrote:': 0.19; 'expanded': 0.21; 'header:In-Reply-To:1': 0.22; 'select': 0.22; 'implemented': 0.23; "i've": 0.24; 'cc:2**0': 0.26; 'header:User- Agent:1': 0.26; 'function': 0.26; 'cc:no real name:2**0': 0.27; 'cc:addr:python.org': 0.28; 'consisting': 0.28; 'issuing': 0.28; 'subject: [': 0.28; 'especially': 0.28; 'source': 0.29; 'worked': 0.29; 'assistance,': 0.30; 'loaded': 0.30; 'initial': 0.30; 'practical': 0.30; 'chris': 0.31; 'code': 0.32; 'running': 0.33; 'actual': 0.33; 'am,': 0.34; 'e.g.': 0.34; 'expensive': 0.35; 'heard': 0.35; 'quickly': 0.35; 'there': 0.36; 'wanted': 0.36; 'grant': 0.36; 'but': 0.37; 'subject:: ': 0.37; 'unable': 0.38; 'some': 0.39; 'received:192': 0.39; 'where': 0.39; 'received:192.168': 0.40; 'quite': 0.40; 'received:net': 0.60; '2012': 0.62; 'back': 0.63; 'more': 0.63; 'received:74.208': 0.65; 'computers': 0.66; 'header:Reply-To:1': 0.67; 'reply-to:no real name:2**0': 0.71; 'to:addr:yahoo.co.uk': 0.84; 'low': 0.86; 'charges,': 0.91; 'edwards': 0.91 Date: Tue, 03 Apr 2012 12:28:31 -0400 From: Dave Angel User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.27) Gecko/20120216 Thunderbird/3.1.19 MIME-Version: 1.0 To: Mark Lawrence Subject: Re: Number of languages known [was Re: Python is readable] - somewhat OT References: <4f7512db$0$29981$c3e8da3$5496439d@news.astraweb.com> <78a6d2f8-23de-496a-afb7-943b60e57c88@mq9g2000pbb.googlegroups.com> <94c6033a-26e7-4b49-911c-b63ca01d13ea@wj4g2000pbc.googlegroups.com> <0f1ead89-f0f1-4179-904d-ec1efda38809@t2g2000pbg.googlegroups.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:zqHRi5Hp07b7mGxdzlYHFSArku8JwQezcq67Pwg2cjv BSU1JvU2P5kIFaQmiqPUMZa1XvDokSOw4yaPzx0Ng2p6qz4mu1 y178Hb0P8yTnpTb2sl4J/cm7yB5U+8CXrwlxMAamaDcKYRx4U+ tZw9HDIG33iBGs2rwz2RxUK4pEDz+cmC/jE1XgDYcYfN3UjB9O CwhcQFvS+NQ+k/08IIc9fPmOfx59qb+RwmKVEjbs5xA2B9Vvdn GHqTq64kXkn1/eCG35NE/tJerWX5gq41LG8RXOFXpo2o91r9kS jj2ODzJmFpx8erILGk0naRSbWZ2m1fMriuB1w/4mJz4kh78KK2 aie6ucDcnjWtto7z1+58= Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: d@davea.name List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 46 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1333470528 news.xs4all.nl 6844 [2001:888:2000:d::a6]:49989 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:22614 On 04/03/2012 11:16 AM, Mark Lawrence wrote: > On 03/04/2012 15:56, Chris Angelico wrote: >> On Wed, Apr 4, 2012 at 12:46 AM, Grant >> Edwards wrote: >>> Anybody remember DEC's VAX/VMS "patch" utility? Apparently, DEC >>> thought it was a practical way to fix things. It had a built-in >>> assembler and let you "insert" new code into a function by >>> auto-allocating a location for the new code an hooking it into the >>> indicated spot with jump instructions. >>> >>> The mind wobbled. >> >> Not specifically, but I _have_ heard of various systems whose source >> code and binary were multiple years divergent. It's actually not a >> difficult trap to fall into, especially once you start patching >> running systems. I've had quite a few computers that have been unable >> to reboot without assistance, because they go for months or years >> without ever having to go through that initial program load. (I've had >> _programs_ that were unable to load, for the same reason.) But >> auto-allocating a new spot for your expanded function? That's just... >> awesome. My mind is, indeed, wobbling. >> >> ChrisA > > Around 1990 I worked on Telematics kit. The patches on all their > software were implemented via assembler once the original binary had > been loaded into memory. They even came up with a system that let you > select which patches you wanted and which you didn't, as e.g. some > patches were customer specific. > And I worked on a system where the microcode was in ROM, and there was a "patch board" consisting of lots of diodes and some EPROMs. The diodes were soldered into place to specfy the instruction(s) to be patched, and the actual patches were in the EPROMs, which were reusable. The diodes were the only thing fast enough to "patch" the ROM, by responding more quickly than the ROM. This was back when issuing a new ROM was a very expensive proposition; there were masking charges, so you couldn't reasonably do low quantities. -- DaveA