From ... Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: Could be a stupid question: Cmucl failing to compile References: <9l4efb$9l2$1@newsg1.svr.pol.co.uk> <9l5pad$755$1@newsg1.svr.pol.co.uk> <9l5rt4$4bd$1@rznews2.rrze.uni-erlangen.de> <9l5s1h$4bd$2@rznews2.rrze.uni-erlangen.de> <9l5sin$ftb$1@news6.svr.pol.co.uk> Mail-Copies-To: never From: Erik Naggum Message-ID: <3206640440239424@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 25 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 12 Aug 2001 21:27:22 GMT X-Complaints-To: newsmaster@Norway.EU.net X-Trace: nreader1.kpnqwest.net 997651642 193.71.66.49 (Sun, 12 Aug 2001 23:27:22 MET DST) NNTP-Posting-Date: Sun, 12 Aug 2001 23:27:22 MET DST Xref: archiver1.google.com comp.lang.lisp:14329 * kaz@ashi.footprints.net (Kaz Kylheku) > Note that this can be found in seconds with vi. I started matching > parens of the top-level forms in your second file one by one > using the % command and hit upon the scan method, which is the > second item. There are two efficient ways in Emacs to do this that might be worth investigating for those who still think vi is a suitable editor. :) At the start of a buffer, lean on M-C-f. Depending on the capacity of your keyboard's autorepeat feature, you will soon either hit the end of the buffer, or get an error very close to the position of the beginning of a form that has no terminating parenthesis. It should not be a problem figuring out what is wrong. This uses forward parsing, which is always a good idea in Lisp. Alternatively, at the end of the buffer, type M-C-u. You will get an error if all the parentheses match, but will be positioned at the last unmatched parenthesis if there is one. This used backward parsing, which has some serious drawbacks and may lead to false positives and negatives. I note in passing that Allegro CL's Emacs Lisp modes warn the user about unmatched parentheses before a buffer is saved. This is a nice feature. ///