From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Rustom Mody Newsgroups: gmane.emacs.help Subject: Re: Speeding up Emacs load time Date: Sun, 30 Jun 2013 07:04:01 -0700 (PDT) Message-ID: <77fdd8e6-6e12-421f-9c81-70ca696c6575@googlegroups.com> References: <87y59urnfn.fsf@VLAN-3434.student.uu.se> <877ghbkbpq.fsf@VLAN-3434.student.uu.se> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1372605718 26171 80.91.229.3 (30 Jun 2013 15:21:58 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 30 Jun 2013 15:21:58 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Jun 30 17:21:59 2013 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UtJRv-0001Fh-Fm for geh-help-gnu-emacs@m.gmane.org; Sun, 30 Jun 2013 17:21:59 +0200 Original-Received: from localhost ([::1]:34916 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtJRv-0001qa-2y for geh-help-gnu-emacs@m.gmane.org; Sun, 30 Jun 2013 11:21:59 -0400 X-Received: by 10.224.200.202 with SMTP id ex10mr22131765qab.8.1372601042261; Sun, 30 Jun 2013 07:04:02 -0700 (PDT) X-Received: by 10.50.83.100 with SMTP id p4mr604146igy.15.1372601042047; Sun, 30 Jun 2013 07:04:02 -0700 (PDT) Original-Path: usenet.stanford.edu!news.glorb.com!j2no1833193qak.0!news-out.google.com!f7ni121qai.0!nntp.google.com!j2no3063792qak.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help In-Reply-To: <877ghbkbpq.fsf@VLAN-3434.student.uu.se> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=59.95.27.251; posting-account=mBpa7woAAAAGLEWUUKpmbxm-Quu5D8ui Original-NNTP-Posting-Host: 59.95.27.251 User-Agent: G2/1.0 Injection-Date: Sun, 30 Jun 2013 14:04:02 +0000 Original-Xref: usenet.stanford.edu gnu.emacs.help:199601 X-Mailman-Approved-At: Sun, 30 Jun 2013 11:21:49 -0400 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:91870 Archived-At: On Sunday, June 30, 2013 6:16:41 PM UTC+5:30, Emanuel Berg wrote: > Rustom Mody writes: > > And that means that Elisp-hacking means frequent restarts of > > Emacs. > > Say what?! I do Elisp all the time and I *never* restart Emacs. > Why do you have to restart it? > You know about `eval-defun', `eval-last-sexp`, `load-file`, etc.? Yeah I know about those. What's missing is un-defun unload etc. What happens in a functional language is that before each load from file to interpreter, the interpreter slate is wiped clean. So there is no cruft. Yeah there is unload-feature. For that you need to be using require/provide Let me repeat the scenario again (which has bitten me quite a few times): I am hacking an elisp function called foo I keep hacking on it till I get it right Now I am satisfied and change its name to long-proper-name-for-foo I change (what I think are) all refs to foo to long-proper-name-for-foo. Note that at this point the lisp namespace contains two names foo and long-proper-name-for-foo defined to the same function. It (seems to) run The next time I start emacs it does not run because I find that I had not renamed all foo-references to long-proper-name-for-foo. As for being a functional language: this is a moving target. In the 1960 Lisp (and maybe APL) were THE functional languages. By 1980s it was clear that there were two major mistakes in lisp - lambda not first class - double name space for functions and variables Scheme cleaned up both these errors, CL cleaned up only the first. And scheme became the benchmark for being an FPL Likewise today its haskell. At the other end of the spectrum, FORTRAN, if you open up the acronym, shows that its inventors imagined it to be something like a functional language. A fair evaluation of that viewpoint is that it was right in 1958 but became wrong (obsolete) in 1960 when lisp came