From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Steve Revilak Newsgroups: gmane.emacs.bugs Subject: bug#5133: 23.1; ispell-buffer with LaTeX file VERY slow in nextstep port of emacs 23.1.1 Date: Sat, 5 Dec 2009 23:31:51 -0500 Message-ID: <20091206043151.GB7663@srevilak.net> Reply-To: Steve Revilak , 5133@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="O5XBE6gyVG5Rl6Rj" X-Trace: ger.gmane.org 1260074884 30029 80.91.229.12 (6 Dec 2009 04:48:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 6 Dec 2009 04:48:04 +0000 (UTC) To: bug-gnu-emacs@gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Dec 06 05:47:57 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1NH924-0004we-Og for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Dec 2009 05:47:56 +0100 Original-Received: from localhost ([127.0.0.1]:50178 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NH924-000604-Aj for geb-bug-gnu-emacs@m.gmane.org; Sat, 05 Dec 2009 23:47:40 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NH91y-0005xU-FR for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:47:34 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NH91t-0005sL-4Z for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:47:33 -0500 Original-Received: from [199.232.76.173] (port=39007 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NH91s-0005sI-Vy for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:47:29 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:47338) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NH91s-0005fF-1g for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:47:28 -0500 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nB64lP8A020824; Sat, 5 Dec 2009 20:47:26 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.14.3/8.14.3/Submit) id nB64e7TG020018; Sat, 5 Dec 2009 20:40:07 -0800 Resent-Date: Sat, 5 Dec 2009 20:40:07 -0800 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Steve Revilak Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs 2Resent-Date: Sun, 06 Dec 2009 04:40:06 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: report 5133 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by submit@emacsbugs.donarmstrong.com id=B.126007392319306 (code B ref -1); Sun, 06 Dec 2009 04:40:06 +0000 Original-Received: (at submit) by emacsbugs.donarmstrong.com; 6 Dec 2009 04:32:03 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nB64W1XM019303 for ; Sat, 5 Dec 2009 20:32:02 -0800 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NH8mv-0008Fa-0O for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:32:01 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NH8mq-0008EF-9k for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:32:00 -0500 Original-Received: from [199.232.76.173] (port=49133 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NH8mq-0008E4-1r for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:31:56 -0500 Original-Received: from mail7.sea5.speakeasy.net ([69.17.117.9]:42071) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NH8mp-0004XD-5L for bug-gnu-emacs@gnu.org; Sat, 05 Dec 2009 23:31:55 -0500 Original-Received: (qmail 1206 invoked from network); 6 Dec 2009 04:31:53 -0000 Original-Received: from pool-96-233-67-219.bstnma.fios.verizon.net (HELO srevilak.net) (srevilak@[96.233.67.219]) (envelope-sender ) by mail7.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 6 Dec 2009 04:31:52 -0000 Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Resent-Date: Sat, 05 Dec 2009 23:47:33 -0500 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:33307 Archived-At: --O5XBE6gyVG5Rl6Rj Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the bug-gnu-emacs@gnu.org mailing list, and to the gnu.emacs.bug news group. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: I often use emacs for writing LaTeX, with the help of "aspell" as a spell-checking program. With the nextstep port of Emacs 23.1.1, spell-checking a latex document is approximately 50 times slower than spell-checking the same latex document with Emacs 22.3.1. My test case uses the LaTeX version of GPL 3.0. I've posted a copy of the latex file here: http://www.cs.umb.edu/~srevilak/images/gpl-3.0.tex I will also attempt to attach a copy of gpl-3.0.tex to this bug report. If you examine this copy of gpl-3.0.tex, you'll notice a "LocalWords" section at the bottom. As a preparation step, I've run this file through ispell-buffer, and used `A' to add all misspelled words. The goal is to see how long it takes ispell-buffer to spell check the file, and declare that there are no spelling errors. Specific steps to reproduce: 1) start emacs, with --no-init-file shell> /Applications/Emacs-23.1.app/Contents/MacOS/Emacs --no-init-file 2) switch to scratch buffer C-x b *scratch* RETURN 3) specify aspell as the ispell program ;; eval with C-x C-e (setq ispell-program "aspell") 4) Open gpl-3.0.tex C-x f /path/to/gpl-3.0.tex RETURN 5) spell-check the buffer M-x ispell-buffer RETURN Again, I've arranged things such that there are no spelling errors for aspell to find. The nextstep port of emacs 23.1.1 takes 57 seconds to spell-check gpl-3.0.tex. By contrast, an older version of emacs: GNU Emacs 22.3.1 (powerpc-apple-darwin8.11.0, Carbon Version 1.6.0) of 2009-03-28 on spud.local takes less that 1 second to perform the same task, on the same computer, using the same aspell binary. As another point of contrast GNU Emacs 23.1.1 (i586-suse-linux-gnu, GTK+ Version 2.18.1) of 2009-10-24 on build16 running on a GNU/Linux system also takes less than 1 second to accomplish this task. Thus, the `slow ispell-buffer' behavior appears to be specific to the nextstep port of emacs 23.1.1, compiled on Mac OS X. The version of aspell that I am using: @(#) International Ispell Version 3.1.20 (but really Aspell 0.60.6) uname -a output for this system: Darwin spud.local 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /Applications/Emacs-23.1.app/Contents/Resources/etc/DEBUG for instructions. In GNU Emacs 23.1.1 (powerpc-apple-darwin8.11.0, NS apple-appkit-824.48) of 2009-10-14 on spud.local Windowing system distributor `Apple', version 10.3.824 configured using `configure '--with-ns'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: C value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_US.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: LaTeX Minor modes in effect: shell-dirtrack-mode: t tooltip-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-x b ( s e t q SPC ' i s p e l l - p r o g r a m SPC " a p s e s p e l l " ) C-x C-e C-x C-f D e g p s-x M-x i s p - b s-x M-x i s p e l l - b u C-x C-s M-x r e p o r t - e m Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. "aspell" kill-region: The mark is not set now, so there is no region Starting new Ispell process [default] ... Spell-checking gpl-3.0.tex using aspell with default dictionary...done kill-region: The mark is not set now, so there is no region Spell-checking gpl-3.0.tex using aspell with default dictionary...done Saving file /Users/srevilak/Desktop/gpl-3.0.tex... Wrote /Users/srevilak/Desktop/gpl-3.0.tex --O5XBE6gyVG5Rl6Rj Content-Type: application/x-tex Content-Disposition: attachment; filename="gpl-3.0.tex" Content-Transfer-Encoding: quoted-printable \documentclass[11pt]{article}=0A=0A\title{GNU GENERAL PUBLIC LICENSE}=0A\da= te{Version 3, 29 June 2007}=0A=0A\begin{document}=0A\maketitle=0A=0A\begin{= center}=0A{\parindent 0in=0A=0ACopyright \copyright\ 2007 Free Software Fo= undation, Inc. \texttt{http://fsf.org/}=0A=0A\bigskip=0AEveryone is permitt= ed to copy and distribute verbatim copies of this=0A=0Alicense document, bu= t changing it is not allowed.}=0A=0A\end{center}=0A=0A\renewcommand{\abstra= ctname}{Preamble}=0A\begin{abstract}=0AThe GNU General Public License is a = free, copyleft license for=0Asoftware and other kinds of works.=0A=0AThe li= censes for most software and other practical works are designed=0Ato take a= way your freedom to share and change the works. By contrast,=0Athe GNU Gen= eral Public License is intended to guarantee your freedom to=0Ashare and ch= ange all versions of a program--to make sure it remains free=0Asoftware for= all its users. We, the Free Software Foundation, use the=0AGNU General Pu= blic License for most of our software; it applies also to=0Aany other work = released this way by its authors. You can apply it to=0Ayour programs, too= =2E=0A=0AWhen we speak of free software, we are referring to freedom, not= =0Aprice. Our General Public Licenses are designed to make sure that you= =0Ahave the freedom to distribute copies of free software (and charge for= =0Athem if you wish), that you receive source code or can get it if you=0Aw= ant it, that you can change the software or use pieces of it in new=0Afree = programs, and that you know you can do these things.=0A=0ATo protect your r= ights, we need to prevent others from denying you=0Athese rights or asking = you to surrender the rights. Therefore, you have=0Acertain responsibilitie= s if you distribute copies of the software, or if=0Ayou modify it: responsi= bilities to respect the freedom of others.=0A=0AFor example, if you distrib= ute copies of such a program, whether=0Agratis or for a fee, you must pass = on to the recipients the same=0Afreedoms that you received. You must make = sure that they, too, receive=0Aor can get the source code. And you must sh= ow them these terms so they=0Aknow their rights.=0A=0ADevelopers that use t= he GNU GPL protect your rights with two steps:=0A(1) assert copyright on th= e software, and (2) offer you this License=0Agiving you legal permission to= copy, distribute and/or modify it.=0A=0AFor the developers' and authors' p= rotection, the GPL clearly explains=0Athat there is no warranty for this fr= ee software. For both users' and=0Aauthors' sake, the GPL requires that mo= dified versions be marked as=0Achanged, so that their problems will not be = attributed erroneously to=0Aauthors of previous versions.=0A=0ASome devices= are designed to deny users access to install or run=0Amodified versions of= the software inside them, although the manufacturer=0Acan do so. This is = fundamentally incompatible with the aim of=0Aprotecting users' freedom to c= hange the software. The systematic=0Apattern of such abuse occurs in the a= rea of products for individuals to=0Ause, which is precisely where it is mo= st unacceptable. Therefore, we=0Ahave designed this version of the GPL to = prohibit the practice for those=0Aproducts. If such problems arise substan= tially in other domains, we=0Astand ready to extend this provision to those= domains in future versions=0Aof the GPL, as needed to protect the freedom = of users.=0A=0AFinally, every program is threatened constantly by software = patents.=0AStates should not allow patents to restrict development and use = of=0Asoftware on general-purpose computers, but in those that do, we wish t= o=0Aavoid the special danger that patents applied to a free program could= =0Amake it effectively proprietary. To prevent this, the GPL assures that= =0Apatents cannot be used to render the program non-free.=0A=0AThe precise = terms and conditions for copying, distribution and=0Amodification follow.= =0A\end{abstract}=0A=0A\begin{center}=0A{\Large \sc Terms and Conditions}= =0A\end{center}=0A=0A=0A\begin{enumerate}=0A=0A\addtocounter{enumi}{-1}=0A= =0A\item Definitions.=0A=0A``This License'' refers to version 3 of the GNU = General Public License.=0A=0A``Copyright'' also means copyright-like laws t= hat apply to other kinds of=0Aworks, such as semiconductor masks.=0A=0A``Th= e Program'' refers to any copyrightable work licensed under this=0ALicense.= Each licensee is addressed as ``you''. ``Licensees'' and=0A``recipients'= ' may be individuals or organizations.=0A=0ATo ``modify'' a work means to c= opy from or adapt all or part of the work=0Ain a fashion requiring copyrigh= t permission, other than the making of an=0Aexact copy. The resulting work= is called a ``modified version'' of the=0Aearlier work or a work ``based o= n'' the earlier work.=0A=0AA ``covered work'' means either the unmodified P= rogram or a work based=0Aon the Program.=0A=0ATo ``propagate'' a work means= to do anything with it that, without=0Apermission, would make you directly= or secondarily liable for=0Ainfringement under applicable copyright law, e= xcept executing it on a=0Acomputer or modifying a private copy. Propagatio= n includes copying,=0Adistribution (with or without modification), making a= vailable to the=0Apublic, and in some countries other activities as well.= =0A=0ATo ``convey'' a work means any kind of propagation that enables other= =0Aparties to make or receive copies. Mere interaction with a user through= =0Aa computer network, with no transfer of a copy, is not conveying.=0A=0AA= n interactive user interface displays ``Appropriate Legal Notices''=0Ato th= e extent that it includes a convenient and prominently visible=0Afeature th= at (1) displays an appropriate copyright notice, and (2)=0Atells the user t= hat there is no warranty for the work (except to the=0Aextent that warranti= es are provided), that licensees may convey the=0Awork under this License, = and how to view a copy of this License. If=0Athe interface presents a list= of user commands or options, such as a=0Amenu, a prominent item in the lis= t meets this criterion.=0A=0A\item Source Code.=0A=0AThe ``source code'' fo= r a work means the preferred form of the work=0Afor making modifications to= it. ``Object code'' means any non-source=0Aform of a work.=0A=0AA ``Stand= ard Interface'' means an interface that either is an official=0Astandard de= fined by a recognized standards body, or, in the case of=0Ainterfaces speci= fied for a particular programming language, one that=0Ais widely used among= developers working in that language.=0A=0AThe ``System Libraries'' of an e= xecutable work include anything, other=0Athan the work as a whole, that (a)= is included in the normal form of=0Apackaging a Major Component, but which= is not part of that Major=0AComponent, and (b) serves only to enable use o= f the work with that=0AMajor Component, or to implement a Standard Interfac= e for which an=0Aimplementation is available to the public in source code f= orm. A=0A``Major Component'', in this context, means a major essential com= ponent=0A(kernel, window system, and so on) of the specific operating syste= m=0A(if any) on which the executable work runs, or a compiler used to=0Apro= duce the work, or an object code interpreter used to run it.=0A=0AThe ``Cor= responding Source'' for a work in object code form means all=0Athe source c= ode needed to generate, install, and (for an executable=0Awork) run the obj= ect code and to modify the work, including scripts to=0Acontrol those activ= ities. However, it does not include the work's=0ASystem Libraries, or gene= ral-purpose tools or generally available free=0Aprograms which are used unm= odified in performing those activities but=0Awhich are not part of the work= =2E For example, Corresponding Source=0Aincludes interface definition file= s associated with source files for=0Athe work, and the source code for shar= ed libraries and dynamically=0Alinked subprograms that the work is specific= ally designed to require,=0Asuch as by intimate data communication or contr= ol flow between those=0Asubprograms and other parts of the work.=0A=0AThe C= orresponding Source need not include anything that users=0Acan regenerate a= utomatically from other parts of the Corresponding=0ASource.=0A=0AThe Corre= sponding Source for a work in source code form is that=0Asame work.=0A=0A\i= tem Basic Permissions.=0A=0AAll rights granted under this License are grant= ed for the term of=0Acopyright on the Program, and are irrevocable provided= the stated=0Aconditions are met. This License explicitly affirms your unl= imited=0Apermission to run the unmodified Program. The output from running= a=0Acovered work is covered by this License only if the output, given its= =0Acontent, constitutes a covered work. This License acknowledges your=0Ar= ights of fair use or other equivalent, as provided by copyright law.=0A=0AY= ou may make, run and propagate covered works that you do not=0Aconvey, with= out conditions so long as your license otherwise remains=0Ain force. You m= ay convey covered works to others for the sole purpose=0Aof having them mak= e modifications exclusively for you, or provide you=0Awith facilities for r= unning those works, provided that you comply with=0Athe terms of this Licen= se in conveying all material for which you do=0Anot control copyright. Tho= se thus making or running the covered works=0Afor you must do so exclusivel= y on your behalf, under your direction=0Aand control, on terms that prohibi= t them from making any copies of=0Ayour copyrighted material outside their = relationship with you.=0A=0AConveying under any other circumstances is perm= itted solely under=0Athe conditions stated below. Sublicensing is not allo= wed; section 10=0Amakes it unnecessary.=0A=0A\item Protecting Users' Legal = Rights From Anti-Circumvention Law.=0A=0ANo covered work shall be deemed pa= rt of an effective technological=0Ameasure under any applicable law fulfill= ing obligations under article=0A11 of the WIPO copyright treaty adopted on = 20 December 1996, or=0Asimilar laws prohibiting or restricting circumventio= n of such=0Ameasures.=0A=0AWhen you convey a covered work, you waive any le= gal power to forbid=0Acircumvention of technological measures to the extent= such circumvention=0Ais effected by exercising rights under this License w= ith respect to=0Athe covered work, and you disclaim any intention to limit = operation or=0Amodification of the work as a means of enforcing, against th= e work's=0Ausers, your or third parties' legal rights to forbid circumventi= on of=0Atechnological measures.=0A=0A\item Conveying Verbatim Copies.=0A=0A= You may convey verbatim copies of the Program's source code as you=0Areceiv= e it, in any medium, provided that you conspicuously and=0Aappropriately pu= blish on each copy an appropriate copyright notice;=0Akeep intact all notic= es stating that this License and any=0Anon-permissive terms added in accord= with section 7 apply to the code;=0Akeep intact all notices of the absence= of any warranty; and give all=0Arecipients a copy of this License along wi= th the Program.=0A=0AYou may charge any price or no price for each copy tha= t you convey,=0Aand you may offer support or warranty protection for a fee.= =0A=0A\item Conveying Modified Source Versions.=0A=0AYou may convey a work = based on the Program, or the modifications to=0Aproduce it from the Program= , in the form of source code under the=0Aterms of section 4, provided that = you also meet all of these conditions:=0A \begin{enumerate}=0A \item The = work must carry prominent notices stating that you modified=0A it, and giv= ing a relevant date.=0A=0A \item The work must carry prominent notices sta= ting that it is=0A released under this License and any conditions added un= der section=0A 7. This requirement modifies the requirement in section 4 = to=0A ``keep intact all notices''.=0A=0A \item You must license the entir= e work, as a whole, under this=0A License to anyone who comes into possess= ion of a copy. This=0A License will therefore apply, along with any appli= cable section 7=0A additional terms, to the whole of the work, and all its= parts,=0A regardless of how they are packaged. This License gives no=0A = permission to license the work in any other way, but it does not=0A inval= idate such permission if you have separately received it.=0A=0A \item If t= he work has interactive user interfaces, each must display=0A Appropriate = Legal Notices; however, if the Program has interactive=0A interfaces that = do not display Appropriate Legal Notices, your=0A work need not make them = do so.=0A\end{enumerate}=0AA compilation of a covered work with other separ= ate and independent=0Aworks, which are not by their nature extensions of th= e covered work,=0Aand which are not combined with it such as to form a larg= er program,=0Ain or on a volume of a storage or distribution medium, is cal= led an=0A``aggregate'' if the compilation and its resulting copyright are n= ot=0Aused to limit the access or legal rights of the compilation's users=0A= beyond what the individual works permit. Inclusion of a covered work=0Ain = an aggregate does not cause this License to apply to the other=0Aparts of t= he aggregate.=0A=0A\item Conveying Non-Source Forms.=0A=0AYou may convey a = covered work in object code form under the terms=0Aof sections 4 and 5, pro= vided that you also convey the=0Amachine-readable Corresponding Source unde= r the terms of this License,=0Ain one of these ways:=0A \begin{enumerate}= =0A \item Convey the object code in, or embodied in, a physical product=0A= (including a physical distribution medium), accompanied by the=0A Corres= ponding Source fixed on a durable physical medium=0A customarily used for = software interchange.=0A=0A \item Convey the object code in, or embodied i= n, a physical product=0A (including a physical distribution medium), accom= panied by a=0A written offer, valid for at least three years and valid for= as=0A long as you offer spare parts or customer support for that product= =0A model, to give anyone who possesses the object code either (1) a=0A c= opy of the Corresponding Source for all the software in the=0A product tha= t is covered by this License, on a durable physical=0A medium customarily = used for software interchange, for a price no=0A more than your reasonable= cost of physically performing this=0A conveying of source, or (2) access = to copy the=0A Corresponding Source from a network server at no charge.=0A= =0A \item Convey individual copies of the object code with a copy of the= =0A written offer to provide the Corresponding Source. This=0A alternati= ve is allowed only occasionally and noncommercially, and=0A only if you re= ceived the object code with such an offer, in accord=0A with subsection 6b= =2E=0A=0A \item Convey the object code by offering access from a designate= d=0A place (gratis or for a charge), and offer equivalent access to the=0A= Corresponding Source in the same way through the same place at no=0A fur= ther charge. You need not require recipients to copy the=0A Corresponding= Source along with the object code. If the place to=0A copy the object co= de is a network server, the Corresponding Source=0A may be on a different = server (operated by you or a third party)=0A that supports equivalent copy= ing facilities, provided you maintain=0A clear directions next to the obje= ct code saying where to find the=0A Corresponding Source. Regardless of w= hat server hosts the=0A Corresponding Source, you remain obligated to ensu= re that it is=0A available for as long as needed to satisfy these requirem= ents.=0A=0A \item Convey the object code using peer-to-peer transmission, = provided=0A you inform other peers where the object code and Corresponding= =0A Source of the work are being offered to the general public at no=0A c= harge under subsection 6d.=0A \end{enumerate}=0A=0AA separable portion of = the object code, whose source code is excluded=0Afrom the Corresponding Sou= rce as a System Library, need not be=0Aincluded in conveying the object cod= e work.=0A=0AA ``User Product'' is either (1) a ``consumer product'', which= means any=0Atangible personal property which is normally used for personal= , family,=0Aor household purposes, or (2) anything designed or sold for inc= orporation=0Ainto a dwelling. In determining whether a product is a consum= er product,=0Adoubtful cases shall be resolved in favor of coverage. For a= particular=0Aproduct received by a particular user, ``normally used'' refe= rs to a=0Atypical or common use of that class of product, regardless of the= status=0Aof the particular user or of the way in which the particular user= =0Aactually uses, or expects or is expected to use, the product. A product= =0Ais a consumer product regardless of whether the product has substantial= =0Acommercial, industrial or non-consumer uses, unless such uses represent= =0Athe only significant mode of use of the product.=0A=0A``Installation Inf= ormation'' for a User Product means any methods,=0Aprocedures, authorizatio= n keys, or other information required to install=0Aand execute modified ver= sions of a covered work in that User Product from=0Aa modified version of i= ts Corresponding Source. The information must=0Asuffice to ensure that the= continued functioning of the modified object=0Acode is in no case prevente= d or interfered with solely because=0Amodification has been made.=0A=0AIf y= ou convey an object code work under this section in, or with, or=0Aspecific= ally for use in, a User Product, and the conveying occurs as=0Apart of a tr= ansaction in which the right of possession and use of the=0AUser Product is= transferred to the recipient in perpetuity or for a=0Afixed term (regardle= ss of how the transaction is characterized), the=0ACorresponding Source con= veyed under this section must be accompanied=0Aby the Installation Informat= ion. But this requirement does not apply=0Aif neither you nor any third pa= rty retains the ability to install=0Amodified object code on the User Produ= ct (for example, the work has=0Abeen installed in ROM).=0A=0AThe requiremen= t to provide Installation Information does not include a=0Arequirement to c= ontinue to provide support service, warranty, or updates=0Afor a work that = has been modified or installed by the recipient, or for=0Athe User Product = in which it has been modified or installed. Access to a=0Anetwork may be d= enied when the modification itself materially and=0Aadversely affects the o= peration of the network or violates the rules and=0Aprotocols for communica= tion across the network.=0A=0ACorresponding Source conveyed, and Installati= on Information provided,=0Ain accord with this section must be in a format = that is publicly=0Adocumented (and with an implementation available to the = public in=0Asource code form), and must require no special password or key = for=0Aunpacking, reading or copying.=0A=0A\item Additional Terms.=0A=0A``Ad= ditional permissions'' are terms that supplement the terms of this=0ALicens= e by making exceptions from one or more of its conditions.=0AAdditional per= missions that are applicable to the entire Program shall=0Abe treated as th= ough they were included in this License, to the extent=0Athat they are vali= d under applicable law. If additional permissions=0Aapply only to part of = the Program, that part may be used separately=0Aunder those permissions, bu= t the entire Program remains governed by=0Athis License without regard to t= he additional permissions.=0A=0AWhen you convey a copy of a covered work, y= ou may at your option=0Aremove any additional permissions from that copy, o= r from any part of=0Ait. (Additional permissions may be written to require= their own=0Aremoval in certain cases when you modify the work.) You may p= lace=0Aadditional permissions on material, added by you to a covered work,= =0Afor which you have or can give appropriate copyright permission.=0A=0ANo= twithstanding any other provision of this License, for material you=0Aadd t= o a covered work, you may (if authorized by the copyright holders of=0Athat= material) supplement the terms of this License with terms:=0A \begin{enum= erate}=0A \item Disclaiming warranty or limiting liability differently fro= m the=0A terms of sections 15 and 16 of this License; or=0A=0A \item Requ= iring preservation of specified reasonable legal notices or=0A author attr= ibutions in that material or in the Appropriate Legal=0A Notices displayed= by works containing it; or=0A=0A \item Prohibiting misrepresentation of t= he origin of that material, or=0A requiring that modified versions of such= material be marked in=0A reasonable ways as different from the original v= ersion; or=0A=0A \item Limiting the use for publicity purposes of names of= licensors or=0A authors of the material; or=0A=0A \item Declining to gra= nt rights under trademark law for use of some=0A trade names, trademarks, = or service marks; or=0A=0A \item Requiring indemnification of licensors an= d authors of that=0A material by anyone who conveys the material (or modif= ied versions of=0A it) with contractual assumptions of liability to the re= cipient, for=0A any liability that these contractual assumptions directly = impose on=0A those licensors and authors.=0A \end{enumerate}=0A=0AAll oth= er non-permissive additional terms are considered ``further=0Arestrictions'= ' within the meaning of section 10. If the Program as you=0Areceived it, o= r any part of it, contains a notice stating that it is=0Agoverned by this L= icense along with a term that is a further=0Arestriction, you may remove th= at term. If a license document contains=0Aa further restriction but permit= s relicensing or conveying under this=0ALicense, you may add to a covered w= ork material governed by the terms=0Aof that license document, provided tha= t the further restriction does=0Anot survive such relicensing or conveying.= =0A=0AIf you add terms to a covered work in accord with this section, you= =0Amust place, in the relevant source files, a statement of the=0Aadditiona= l terms that apply to those files, or a notice indicating=0Awhere to find t= he applicable terms.=0A=0AAdditional terms, permissive or non-permissive, m= ay be stated in the=0Aform of a separately written license, or stated as ex= ceptions;=0Athe above requirements apply either way.=0A=0A\item Termination= =2E=0A=0AYou may not propagate or modify a covered work except as expressly= =0Aprovided under this License. Any attempt otherwise to propagate or=0Amo= dify it is void, and will automatically terminate your rights under=0Athis = License (including any patent licenses granted under the third=0Aparagraph = of section 11).=0A=0AHowever, if you cease all violation of this License, t= hen your=0Alicense from a particular copyright holder is reinstated (a)=0Ap= rovisionally, unless and until the copyright holder explicitly and=0Afinall= y terminates your license, and (b) permanently, if the copyright=0Aholder f= ails to notify you of the violation by some reasonable means=0Aprior to 60 = days after the cessation.=0A=0AMoreover, your license from a particular cop= yright holder is=0Areinstated permanently if the copyright holder notifies = you of the=0Aviolation by some reasonable means, this is the first time you= have=0Areceived notice of violation of this License (for any work) from th= at=0Acopyright holder, and you cure the violation prior to 30 days after=0A= your receipt of the notice.=0A=0ATermination of your rights under this sect= ion does not terminate the=0Alicenses of parties who have received copies o= r rights from you under=0Athis License. If your rights have been terminate= d and not permanently=0Areinstated, you do not qualify to receive new licen= ses for the same=0Amaterial under section 10.=0A=0A\item Acceptance Not Req= uired for Having Copies.=0A=0AYou are not required to accept this License i= n order to receive or=0Arun a copy of the Program. Ancillary propagation o= f a covered work=0Aoccurring solely as a consequence of using peer-to-peer = transmission=0Ato receive a copy likewise does not require acceptance. How= ever,=0Anothing other than this License grants you permission to propagate = or=0Amodify any covered work. These actions infringe copyright if you do= =0Anot accept this License. Therefore, by modifying or propagating a=0Acov= ered work, you indicate your acceptance of this License to do so.=0A=0A\ite= m Automatic Licensing of Downstream Recipients.=0A=0AEach time you convey a= covered work, the recipient automatically=0Areceives a license from the or= iginal licensors, to run, modify and=0Apropagate that work, subject to this= License. You are not responsible=0Afor enforcing compliance by third part= ies with this License.=0A=0AAn ``entity transaction'' is a transaction tran= sferring control of an=0Aorganization, or substantially all assets of one, = or subdividing an=0Aorganization, or merging organizations. If propagation= of a covered=0Awork results from an entity transaction, each party to that= =0Atransaction who receives a copy of the work also receives whatever=0Alic= enses to the work the party's predecessor in interest had or could=0Agive u= nder the previous paragraph, plus a right to possession of the=0ACorrespond= ing Source of the work from the predecessor in interest, if=0Athe predecess= or has it or can get it with reasonable efforts.=0A=0AYou may not impose an= y further restrictions on the exercise of the=0Arights granted or affirmed = under this License. For example, you may=0Anot impose a license fee, royal= ty, or other charge for exercise of=0Arights granted under this License, an= d you may not initiate litigation=0A(including a cross-claim or counterclai= m in a lawsuit) alleging that=0Aany patent claim is infringed by making, us= ing, selling, offering for=0Asale, or importing the Program or any portion = of it.=0A=0A\item Patents.=0A=0AA ``contributor'' is a copyright holder who= authorizes use under this=0ALicense of the Program or a work on which the = Program is based. The=0Awork thus licensed is called the contributor's ``c= ontributor version''.=0A=0AA contributor's ``essential patent claims'' are = all patent claims=0Aowned or controlled by the contributor, whether already= acquired or=0Ahereafter acquired, that would be infringed by some manner, = permitted=0Aby this License, of making, using, or selling its contributor v= ersion,=0Abut do not include claims that would be infringed only as a=0Acon= sequence of further modification of the contributor version. For=0Apurpose= s of this definition, ``control'' includes the right to grant=0Apatent subl= icenses in a manner consistent with the requirements of=0Athis License.=0A= =0AEach contributor grants you a non-exclusive, worldwide, royalty-free=0Ap= atent license under the contributor's essential patent claims, to=0Amake, u= se, sell, offer for sale, import and otherwise run, modify and=0Apropagate = the contents of its contributor version.=0A=0AIn the following three paragr= aphs, a ``patent license'' is any express=0Aagreement or commitment, howeve= r denominated, not to enforce a patent=0A(such as an express permission to = practice a patent or covenant not to=0Asue for patent infringement). To ``= grant'' such a patent license to a=0Aparty means to make such an agreement = or commitment not to enforce a=0Apatent against the party.=0A=0AIf you conv= ey a covered work, knowingly relying on a patent license,=0Aand the Corresp= onding Source of the work is not available for anyone=0Ato copy, free of ch= arge and under the terms of this License, through a=0Apublicly available ne= twork server or other readily accessible means,=0Athen you must either (1) = cause the Corresponding Source to be so=0Aavailable, or (2) arrange to depr= ive yourself of the benefit of the=0Apatent license for this particular wor= k, or (3) arrange, in a manner=0Aconsistent with the requirements of this L= icense, to extend the patent=0Alicense to downstream recipients. ``Knowing= ly relying'' means you have=0Aactual knowledge that, but for the patent lic= ense, your conveying the=0Acovered work in a country, or your recipient's u= se of the covered work=0Ain a country, would infringe one or more identifia= ble patents in that=0Acountry that you have reason to believe are valid.=0A= =0AIf, pursuant to or in connection with a single transaction or=0Aarrangem= ent, you convey, or propagate by procuring conveyance of, a=0Acovered work,= and grant a patent license to some of the parties=0Areceiving the covered = work authorizing them to use, propagate, modify=0Aor convey a specific copy= of the covered work, then the patent license=0Ayou grant is automatically = extended to all recipients of the covered=0Awork and works based on it.=0A= =0AA patent license is ``discriminatory'' if it does not include within=0At= he scope of its coverage, prohibits the exercise of, or is=0Aconditioned on= the non-exercise of one or more of the rights that are=0Aspecifically gran= ted under this License. You may not convey a covered=0Awork if you are a p= arty to an arrangement with a third party that is=0Ain the business of dist= ributing software, under which you make payment=0Ato the third party based = on the extent of your activity of conveying=0Athe work, and under which the= third party grants, to any of the=0Aparties who would receive the covered = work from you, a discriminatory=0Apatent license (a) in connection with cop= ies of the covered work=0Aconveyed by you (or copies made from those copies= ), or (b) primarily=0Afor and in connection with specific products or compi= lations that=0Acontain the covered work, unless you entered into that arran= gement,=0Aor that patent license was granted, prior to 28 March 2007.=0A=0A= Nothing in this License shall be construed as excluding or limiting=0Aany i= mplied license or other defenses to infringement that may=0Aotherwise be av= ailable to you under applicable patent law.=0A=0A\item No Surrender of Othe= rs' Freedom.=0A=0AIf conditions are imposed on you (whether by court order,= agreement or=0Aotherwise) that contradict the conditions of this License, = they do not=0Aexcuse you from the conditions of this License. If you canno= t convey a=0Acovered work so as to satisfy simultaneously your obligations = under this=0ALicense and any other pertinent obligations, then as a consequ= ence you may=0Anot convey it at all. For example, if you agree to terms th= at obligate you=0Ato collect a royalty for further conveying from those to = whom you convey=0Athe Program, the only way you could satisfy both those te= rms and this=0ALicense would be to refrain entirely from conveying the Prog= ram.=0A=0A\item Use with the GNU Affero General Public License.=0A=0ANotwit= hstanding any other provision of this License, you have=0Apermission to lin= k or combine any covered work with a work licensed=0Aunder version 3 of the= GNU Affero General Public License into a single=0Acombined work, and to co= nvey the resulting work. The terms of this=0ALicense will continue to appl= y to the part which is the covered work,=0Abut the special requirements of = the GNU Affero General Public License,=0Asection 13, concerning interaction= through a network will apply to the=0Acombination as such.=0A=0A\item Revi= sed Versions of this License.=0A=0AThe Free Software Foundation may publish= revised and/or new versions of=0Athe GNU General Public License from time = to time. Such new versions will=0Abe similar in spirit to the present vers= ion, but may differ in detail to=0Aaddress new problems or concerns.=0A=0AE= ach version is given a distinguishing version number. If the=0AProgram spe= cifies that a certain numbered version of the GNU General=0APublic License = ``or any later version'' applies to it, you have the=0Aoption of following = the terms and conditions either of that numbered=0Aversion or of any later = version published by the Free Software=0AFoundation. If the Program does n= ot specify a version number of the=0AGNU General Public License, you may ch= oose any version ever published=0Aby the Free Software Foundation.=0A=0AIf = the Program specifies that a proxy can decide which future=0Aversions of th= e GNU General Public License can be used, that proxy's=0Apublic statement o= f acceptance of a version permanently authorizes you=0Ato choose that versi= on for the Program.=0A=0ALater license versions may give you additional or = different=0Apermissions. However, no additional obligations are imposed on= any=0Aauthor or copyright holder as a result of your choosing to follow a= =0Alater version.=0A=0A\item Disclaimer of Warranty.=0A=0A\begin{sloppypar}= =0A THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY=0A APP= LICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE=0A COPYRIGHT HOLD= ERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS''=0A WITHOUT WARRANTY = OF ANY KIND, EITHER EXPRESSED OR IMPLIED,=0A INCLUDING, BUT NOT LIMITED TO,= THE IMPLIED WARRANTIES OF=0A MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE. THE ENTIRE=0A RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGR= AM IS WITH YOU.=0A SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST = OF ALL=0A NECESSARY SERVICING, REPAIR OR CORRECTION.=0A\end{sloppypar}=0A= =0A\item Limitation of Liability.=0A=0A IN NO EVENT UNLESS REQUIRED BY APPL= ICABLE LAW OR AGREED TO IN=0A WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTH= ER PARTY WHO MODIFIES=0A AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE = LIABLE TO YOU FOR=0A DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR= CONSEQUENTIAL=0A DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PR= OGRAM=0A (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED= =0A INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE=0A = OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH=0A HOLDER = OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH=0A DAMAGES.=0A= =0A\item Interpretation of Sections 15 and 16.=0A=0AIf the disclaimer of wa= rranty and limitation of liability provided=0Aabove cannot be given local l= egal effect according to their terms,=0Areviewing courts shall apply local = law that most closely approximates=0Aan absolute waiver of all civil liabil= ity in connection with the=0AProgram, unless a warranty or assumption of li= ability accompanies a=0Acopy of the Program in return for a fee.=0A=0A\begi= n{center}=0A{\Large\sc End of Terms and Conditions}=0A=0A\bigskip=0AHow to = Apply These Terms to Your New Programs=0A\end{center}=0A=0AIf you develop a= new program, and you want it to be of the greatest=0Apossible use to the p= ublic, the best way to achieve this is to make it=0Afree software which eve= ryone can redistribute and change under these terms.=0A=0ATo do so, attach = the following notices to the program. It is safest=0Ato attach them to the= start of each source file to most effectively=0Astate the exclusion of war= ranty; and each file should have at least=0Athe ``copyright'' line and a po= inter to where the full notice is found.=0A=0A{\footnotesize=0A\begin{verba= tim}=0A=0A=0ACopyright (C) =0A=0AThis program is fr= ee software: you can redistribute it and/or modify=0Ait under the terms of = the GNU General Public License as published by=0Athe Free Software Foundati= on, either version 3 of the License, or=0A(at your option) any later versio= n.=0A=0AThis program is distributed in the hope that it will be useful,=0Ab= ut WITHOUT ANY WARRANTY; without even the implied warranty of=0AMERCHANTABI= LITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0AGNU General Public Lic= ense for more details.=0A=0AYou should have received a copy of the GNU Gene= ral Public License=0Aalong with this program. If not, see .=0A\end{verbatim}=0A}=0A=0AAlso add information on how to co= ntact you by electronic and paper mail.=0A=0AIf the program does terminal i= nteraction, make it output a short=0Anotice like this when it starts in an = interactive mode:=0A=0A{\footnotesize=0A\begin{verbatim}=0A Copyr= ight (C) =0A=0AThis program comes with ABSOLUTELY N= O WARRANTY; for details type `show w'.=0AThis is free software, and you are= welcome to redistribute it=0Aunder certain conditions; type `show c' for d= etails.=0A\end{verbatim}=0A}=0A=0AThe hypothetical commands {\tt show w} an= d {\tt show c} should show=0Athe appropriate=0Aparts of the General Public = License. Of course, your program's commands=0Amight be different; for a GU= I interface, you would use an ``about box''.=0A=0AYou should also get your = employer (if you work as a programmer) or=0Aschool, if any, to sign a ``cop= yright disclaimer'' for the program, if=0Anecessary. For more information = on this, and how to apply and follow=0Athe GNU GPL, see \texttt{http://www.= gnu.org/licenses/}.=0A=0AThe GNU General Public License does not permit inc= orporating your=0Aprogram into proprietary programs. If your program is a = subroutine=0Alibrary, you may consider it more useful to permit linking pro= prietary=0Aapplications with the library. If this is what you want to do, = use=0Athe GNU Lesser General Public License instead of this License. But= =0Afirst, please read \texttt{http://www.gnu.org/philosophy/why-not-lgpl.ht= ml}.=0A=0A\end{enumerate}=0A=0A\end{document}=0A=0A% LocalWords: GPL Subli= censing WIPO noncommercially licensors relicensing=0A% LocalWords: sublice= nses Affero=0A --O5XBE6gyVG5Rl6Rj--