# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2021-11-07 12:11+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: chapter #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:5 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:6 #, no-wrap msgid "Byte Compilation" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:7 #, no-wrap msgid "byte compilation" msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:8 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:589 #, no-wrap msgid "byte-code" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:9 #, no-wrap msgid "compilation (Emacs Lisp)" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:16 msgid "" "Emacs Lisp has a @dfn{compiler} that translates functions written in Lisp " "into a special representation called @dfn{byte-code} that can be executed " "more efficiently. The compiler replaces Lisp function definitions with " "byte-code. When a byte-code function is called, its definition is evaluated " "by the @dfn{byte-code interpreter}." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:22 msgid "" "Because the byte-compiled code is evaluated by the byte-code interpreter, " "instead of being executed directly by the machine's hardware (as true " "compiled code is), byte-code is completely transportable from machine to " "machine without recompilation. It is not, however, as fast as true compiled " "code." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:25 msgid "" "In general, any version of Emacs can run byte-compiled code produced by " "recent earlier versions of Emacs, but the reverse is not true." msgstr "" #. type: vindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:26 #, no-wrap msgid "no-byte-compile" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:29 msgid "" "If you do not want a Lisp file to be compiled, ever, put a file-local " "variable binding for @code{no-byte-compile} into it, like this:" msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:32 #, no-wrap msgid ";; -*-no-byte-compile: t; -*-\n" msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:45 #, no-wrap msgid "Speed of Byte-Code" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "An example of speedup from byte compilation." msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:82 #, no-wrap msgid "Compilation Functions" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "Byte compilation functions." msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:244 #, no-wrap msgid "Docs and Compilation" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "Dynamic loading of documentation strings." msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:292 #, no-wrap msgid "Dynamic Loading" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "Dynamic loading of individual functions." msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:357 #, no-wrap msgid "Eval During Compile" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "Code to be evaluated when you compile." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:439 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:440 #, no-wrap msgid "Compiler Errors" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "Handling compiler error messages." msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:556 #, no-wrap msgid "Byte-Code Objects" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "The data type used for byte-compiled functions." msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:636 #, no-wrap msgid "Disassembly" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:43 msgid "Disassembling byte-code; how to read byte-code." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:46 #, no-wrap msgid "Performance of Byte-Compiled Code" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:51 msgid "" "A byte-compiled function is not as efficient as a primitive function written " "in C, but runs much faster than the version written in Lisp. Here is an " "example:" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:60 #, no-wrap msgid "" "(defun silly-loop (n)\n" " \"Return the time, in seconds, to run N iterations of a loop.\"\n" " (let ((t1 (float-time)))\n" " (while (> (setq n (1- n)) 0))\n" " (- (float-time) t1)))\n" "@result{} silly-loop\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:65 #, no-wrap msgid "" "(silly-loop 50000000)\n" "@result{} 10.235304117202759\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:70 #, no-wrap msgid "" "(byte-compile 'silly-loop)\n" "@result{} @r{[Compiled code not shown]}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:75 #, no-wrap msgid "" "(silly-loop 50000000)\n" "@result{} 3.705854892730713\n" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:81 msgid "" "In this example, the interpreted code required 10 seconds to run, whereas " "the byte-compiled code required less than 4 seconds. These results are " "representative, but actual results may vary." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:83 #, no-wrap msgid "Byte-Compilation Functions" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:84 #, no-wrap msgid "compilation functions" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:90 msgid "" "You can byte-compile an individual function or macro definition with the " "@code{byte-compile} function. You can compile a whole file with " "@code{byte-compile-file}, or several files with " "@code{byte-recompile-directory} or @code{batch-byte-compile}." msgstr "" #. type: vindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:91 #, no-wrap msgid "byte-compile-debug" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:99 msgid "" "Sometimes, the byte compiler produces warning and/or error messages " "(@pxref{Compiler Errors}, for details). These messages are normally " "recorded in a buffer called @file{*Compile-Log*}, which uses Compilation " "mode. @xref{Compilation Mode,,,emacs, The GNU Emacs Manual}. However, if " "the variable @code{byte-compile-debug} is non-@code{nil}, error messages " "will be signaled as Lisp errors instead (@pxref{Errors})." msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:100 #, no-wrap msgid "macro compilation" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:113 msgid "" "Be careful when writing macro calls in files that you intend to " "byte-compile. Since macro calls are expanded when they are compiled, the " "macros need to be loaded into Emacs or the byte compiler will not do the " "right thing. The usual way to handle this is with @code{require} forms " "which specify the files containing the needed macro definitions " "(@pxref{Named Features}). Normally, the byte compiler does not evaluate the " "code that it is compiling, but it handles @code{require} forms specially, by " "loading the specified libraries. To avoid loading the macro definition " "files when someone @emph{runs} the compiled program, write " "@code{eval-when-compile} around the @code{require} calls (@pxref{Eval During " "Compile}). For more details, @xref{Compiling Macros}." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:117 msgid "" "Inline (@code{defsubst}) functions are less troublesome; if you compile a " "call to such a function before its definition is known, the call will still " "work right, it will just run slower." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:118 #, no-wrap msgid "byte-compile symbol" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:125 msgid "" "This function byte-compiles the function definition of @var{symbol}, " "replacing the previous definition with the compiled one. The function " "definition of @var{symbol} must be the actual code for the function; " "@code{byte-compile} does not handle function indirection. The return value " "is the byte-code function object which is the compiled definition of " "@var{symbol} (@pxref{Byte-Code Objects})." msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:133 #, no-wrap msgid "" "(defun factorial (integer)\n" " \"Compute factorial of INTEGER.\"\n" " (if (= 1 integer) 1\n" " (* integer (factorial (1- integer)))))\n" "@result{} factorial\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:142 #, no-wrap msgid "" "(byte-compile 'factorial)\n" "@result{}\n" "#[(integer)\n" " \"^H\\301U\\203^H^@@\\301\\207\\302^H\\303^HS!\\\"\\207\"\n" " [integer 1 * factorial]\n" " 4 \"Compute factorial of INTEGER.\"]\n" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:150 msgid "" "If @var{symbol}'s definition is a byte-code function object, " "@code{byte-compile} does nothing and returns @code{nil}. It does not " "compile the symbol's definition again, since the original (non-compiled) " "code has already been replaced in the symbol's function cell by the " "byte-compiled code." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:154 msgid "" "The argument to @code{byte-compile} can also be a @code{lambda} expression. " "In that case, the function returns the corresponding compiled code but does " "not store it anywhere." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:156 #, no-wrap msgid "Command compile-defun &optional arg" msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:161 msgid "" "This command reads the defun containing point, compiles it, and evaluates " "the result. If you use this on a defun that is actually a function " "definition, the effect is to install a compiled version of that function." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:165 msgid "" "@code{compile-defun} normally displays the result of evaluation in the echo " "area, but if @var{arg} is non-@code{nil}, it inserts the result in the " "current buffer after the form it has compiled." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:167 #, no-wrap msgid "Command byte-compile-file filename" msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:172 msgid "" "This function compiles a file of Lisp code named @var{filename} into a file " "of byte-code. The output file's name is made by changing the @samp{.el} " "suffix into @samp{.elc}; if @var{filename} does not end in @samp{.el}, it " "adds @samp{.elc} to the end of @var{filename}." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:179 msgid "" "Compilation works by reading the input file one form at a time. If it is a " "definition of a function or macro, the compiled function or macro definition " "is written out. Other forms are batched together, then each batch is " "compiled, and written so that its compiled code will be executed when the " "file is read. All comments are discarded when the input file is read." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:182 msgid "" "This command returns @code{t} if there were no errors and @code{nil} " "otherwise. When called interactively, it prompts for the file name." msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:187 #, no-wrap msgid "" "$ ls -l push*\n" "-rw-r--r-- 1 lewis lewis 791 Oct 5 20:31 push.el\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:192 #, no-wrap msgid "" "(byte-compile-file \"~/emacs/push.el\")\n" " @result{} t\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:198 #, no-wrap msgid "" "$ ls -l push*\n" "-rw-r--r-- 1 lewis lewis 791 Oct 5 20:31 push.el\n" "-rw-rw-rw- 1 lewis lewis 638 Oct 8 20:25 push.elc\n" msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:202 #, no-wrap msgid "" "Command byte-recompile-directory directory &optional flag force " "follow-symlinks" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:203 #, no-wrap msgid "library compilation" msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:208 msgid "" "This command recompiles every @samp{.el} file in @var{directory} (or its " "subdirectories) that needs recompilation. A file needs recompilation if a " "@samp{.elc} file exists but is older than the @samp{.el} file." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:214 msgid "" "When a @samp{.el} file has no corresponding @samp{.elc} file, @var{flag} " "says what to do. If it is @code{nil}, this command ignores these files. If " "@var{flag} is 0, it compiles them. If it is neither @code{nil} nor 0, it " "asks the user whether to compile each such file, and asks about each " "subdirectory as well." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:217 msgid "" "Interactively, @code{byte-recompile-directory} prompts for @var{directory} " "and @var{flag} is the prefix argument." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:220 msgid "" "If @var{force} is non-@code{nil}, this command recompiles every @samp{.el} " "file that has a @samp{.elc} file." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:224 msgid "" "This command will normally not compile @samp{.el} files that are symlinked. " "If the optional @var{follow-symlink} parameter is non-@code{nil}, symlinked " "@samp{.el} will also be compiled." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:226 msgid "The returned value is unpredictable." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:228 #, no-wrap msgid "batch-byte-compile &optional noforce" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:235 msgid "" "This function runs @code{byte-compile-file} on files specified on the " "command line. This function must be used only in a batch execution of " "Emacs, as it kills Emacs on completion. An error in one file does not " "prevent processing of subsequent files, but no output file will be generated " "for it, and the Emacs process will terminate with a nonzero status code." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:238 msgid "" "If @var{noforce} is non-@code{nil}, this function does not recompile files " "that have an up-to-date @samp{.elc} file." msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:241 #, no-wrap msgid "$ emacs -batch -f batch-byte-compile *.el\n" msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:245 #, no-wrap msgid "Documentation Strings and Compilation" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:246 #, no-wrap msgid "dynamic loading of documentation" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:253 msgid "" "When Emacs loads functions and variables from a byte-compiled file, it " "normally does not load their documentation strings into memory. Each " "documentation string is dynamically loaded from the byte-compiled file only " "when needed. This saves memory, and speeds up loading by skipping the " "processing of the documentation strings." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:260 msgid "" "This feature has a drawback: if you delete, move, or alter the compiled file " "(such as by compiling a new version), Emacs may no longer be able to access " "the documentation string of previously-loaded functions or variables. Such " "a problem normally only occurs if you build Emacs yourself, and happen to " "edit and/or recompile the Lisp source files. To solve it, just reload each " "file after recompilation." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:264 msgid "" "Dynamic loading of documentation strings from byte-compiled files is " "determined, at compile time, for each byte-compiled file. It can be " "disabled via the option @code{byte-compile-dynamic-docstrings}." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:265 #, no-wrap msgid "byte-compile-dynamic-docstrings" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:268 msgid "" "If this is non-@code{nil}, the byte compiler generates compiled files that " "are set up for dynamic loading of documentation strings." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:272 msgid "" "To disable the dynamic loading feature for a specific file, set this option " "to @code{nil} in its header line (@pxref{File Variables, , Local Variables " "in Files, emacs, The GNU Emacs Manual}), like this:" msgstr "" #. type: smallexample #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:275 #, no-wrap msgid "-*-byte-compile-dynamic-docstrings: nil;-*-\n" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:280 msgid "" "This is useful mainly if you expect to change the file, and you want Emacs " "sessions that have already loaded it to keep working when the file changes." msgstr "" #. type: samp{#1} #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:282 #, no-wrap msgid "#@@@var{count}" msgstr "" #. type: samp{#1} #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:283 #, no-wrap msgid "#$" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:291 msgid "" "Internally, the dynamic loading of documentation strings is accomplished by " "writing compiled files with a special Lisp reader construct, " "@samp{#@@@var{count}}. This construct skips the next @var{count} " "characters. It also uses the @samp{#$} construct, which stands for the name " "of this file, as a string. Do not use these constructs in Lisp source " "files; they are not designed to be clear to humans reading the file." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:293 #, no-wrap msgid "Dynamic Loading of Individual Functions" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:295 #, no-wrap msgid "dynamic loading of functions" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:296 #, no-wrap msgid "lazy loading" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:304 msgid "" "When you compile a file, you can optionally enable the @dfn{dynamic function " "loading} feature (also known as @dfn{lazy loading}). With dynamic function " "loading, loading the file doesn't fully read the function definitions in the " "file. Instead, each function definition contains a place-holder which " "refers to the file. The first time each function is called, it reads the " "full definition from the file, to replace the place-holder." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:311 msgid "" "The advantage of dynamic function loading is that loading the file should " "become faster. This is a good thing for a file which contains many separate " "user-callable functions, if using one of them does not imply you will " "probably also use the rest. A specialized mode which provides many keyboard " "commands often has that usage pattern: a user may invoke the mode, but use " "only a few of the commands it provides." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:313 msgid "The dynamic loading feature has certain disadvantages:" msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:318 msgid "" "If you delete or move the compiled file after loading it, Emacs can no " "longer load the remaining function definitions not already loaded." msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:323 msgid "" "If you alter the compiled file (such as by compiling a new version), then " "trying to load any function not already loaded will usually yield nonsense " "results." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:329 msgid "" "These problems will never happen in normal circumstances with installed " "Emacs files. But they are quite likely to happen with Lisp files that you " "are changing. The easiest way to prevent these problems is to reload the " "new compiled file immediately after each recompilation." msgstr "" #. type: emph{#1} #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:333 msgid "" "Experience shows that using dynamic function loading provides benefits that " "are hardly measurable, so this feature is deprecated since Emacs 27.1." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:340 msgid "" "The byte compiler uses the dynamic function loading feature if the variable " "@code{byte-compile-dynamic} is non-@code{nil} at compilation time. Do not " "set this variable globally, since dynamic loading is desirable only for " "certain files. Instead, enable the feature for specific source files with " "file-local variable bindings. For example, you could do it by writing this " "text in the source file's first line:" msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:343 #, no-wrap msgid "-*-byte-compile-dynamic: t;-*-\n" msgstr "" #. type: defvar #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:345 #, no-wrap msgid "byte-compile-dynamic" msgstr "" #. type: defvar #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:348 msgid "" "If this is non-@code{nil}, the byte compiler generates compiled files that " "are set up for dynamic function loading." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:350 #, no-wrap msgid "fetch-bytecode function" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:355 msgid "" "If @var{function} is a byte-code function object, this immediately finishes " "loading the byte code of @var{function} from its byte-compiled file, if it " "is not fully loaded already. Otherwise, it does nothing. It always returns " "@var{function}." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:358 #, no-wrap msgid "Evaluation During Compilation" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:359 #, no-wrap msgid "eval during compilation" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:363 msgid "" "These features permit you to write code to be evaluated during compilation " "of a program." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:364 #, no-wrap msgid "eval-and-compile body@dots{}" msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:367 msgid "" "This form marks @var{body} to be evaluated both when you compile the " "containing code and when you run it (whether compiled or not)." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:373 msgid "" "You can get a similar result by putting @var{body} in a separate file and " "referring to that file with @code{require}. That method is preferable when " "@var{body} is large. Effectively @code{require} is automatically " "@code{eval-and-compile}, the package is loaded both when compiling and " "executing." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:377 msgid "" "@code{autoload} is also effectively @code{eval-and-compile} too. It's " "recognized when compiling, so uses of such a function don't produce ``not " "known to be defined'' warnings." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:379 msgid "Most uses of @code{eval-and-compile} are fairly sophisticated." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:384 msgid "" "If a macro has a helper function to build its result, and that macro is used " "both locally and outside the package, then @code{eval-and-compile} should be " "used to get the helper both when compiling and then later when running." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:389 msgid "" "If functions are defined programmatically (with @code{fset} say), then " "@code{eval-and-compile} can be used to have that done at compile-time as " "well as run-time, so calls to those functions are checked (and warnings " "about ``not known to be defined'' suppressed)." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:391 #, no-wrap msgid "eval-when-compile body@dots{}" msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:397 msgid "" "This form marks @var{body} to be evaluated at compile time but not when the " "compiled program is loaded. The result of evaluation by the compiler " "becomes a constant which appears in the compiled program. If you load the " "source file, rather than compiling it, @var{body} is evaluated normally." msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:398 #, no-wrap msgid "compile-time constant" msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:401 msgid "" "If you have a constant that needs some calculation to produce, " "@code{eval-when-compile} can do that at compile-time. For example," msgstr "" #. type: lisp #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:405 #, no-wrap msgid "" "(defvar my-regexp\n" " (eval-when-compile (regexp-opt '(\"aaa\" \"aba\" \"abb\"))))\n" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:407 #, no-wrap msgid "macros, at compile time" msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:411 msgid "" "If you're using another package, but only need macros from it (the byte " "compiler will expand those), then @code{eval-when-compile} can be used to " "load it for compiling, but not executing. For example," msgstr "" #. type: lisp #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:415 #, no-wrap msgid "" "(eval-when-compile\n" " (require 'my-macro-package))\n" msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:421 msgid "" "The same sort of thing goes for macros and @code{defsubst} functions defined " "locally and only for use within the file. They are needed for compiling the " "file, but in most cases they are not needed for execution of the compiled " "file. For example," msgstr "" #. type: lisp #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:427 #, no-wrap msgid "" "(eval-when-compile\n" " (unless (fboundp 'some-new-thing)\n" " (defmacro 'some-new-thing ()\n" " (compatibility code))))\n" msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:432 msgid "" "This is often good for code that's only a fallback for compatibility with " "other versions of Emacs." msgstr "" #. type: defmac #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:437 msgid "" "@strong{Common Lisp Note:} At top level, @code{eval-when-compile} is " "analogous to the Common Lisp idiom @code{(eval-when (compile eval) " "@dots{})}. Elsewhere, the Common Lisp @samp{#.} reader macro (but not when " "interpreting) is closer to what @code{eval-when-compile} does." msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:441 #, no-wrap msgid "compiler errors" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:442 #, no-wrap msgid "byte-compiler errors" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:449 msgid "" "Error and warning messages from byte compilation are printed in a buffer " "named @file{*Compile-Log*}. These messages include file names and line " "numbers identifying the location of the problem. The usual Emacs commands " "for operating on compiler output can be used on these messages." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:458 msgid "" "When an error is due to invalid syntax in the program, the byte compiler " "might get confused about the error's exact location. One way to investigate " "is to switch to the buffer @w{@file{ *Compiler Input*}}. (This buffer name " "starts with a space, so it does not show up in the Buffer Menu.) This " "buffer contains the program being compiled, and point shows how far the byte " "compiler was able to read; the cause of the error might be nearby. " "@xref{Syntax Errors}, for some tips for locating syntax errors." msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:459 #, no-wrap msgid "byte-compiler warnings" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:460 #, no-wrap msgid "free variable, byte-compiler warning" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:461 #, no-wrap msgid "reference to free variable, compilation warning" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:462 #, no-wrap msgid "function not known to be defined, compilation warning" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:468 msgid "" "A common type of warning issued by the byte compiler is for functions and " "variables that were used but not defined. Such warnings report the line " "number for the end of the file, not the locations where the missing " "functions or variables were used; to find these, you must search the file " "manually." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:471 msgid "" "If you are sure that a warning message about a missing function or variable " "is unjustified, there are several ways to suppress it:" msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:477 msgid "" "You can suppress the warning for a specific call to a function @var{func} by " "conditionalizing it on an @code{fboundp} test, like this:" msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:480 #, no-wrap msgid "(if (fboundp '@var{func}) ...(@var{func} ...)...)\n" msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:486 msgid "" "The call to @var{func} must be in the @var{then-form} of the @code{if}, and " "@var{func} must appear quoted in the call to @code{fboundp}. (This feature " "operates for @code{cond} as well.)" msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:491 msgid "" "Likewise, you can suppress the warning for a specific use of a variable " "@var{variable} by conditionalizing it on a @code{boundp} test:" msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:494 #, no-wrap msgid "(if (boundp '@var{variable}) ...@var{variable}...)\n" msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:500 msgid "" "The reference to @var{variable} must be in the @var{then-form} of the " "@code{if}, and @var{variable} must appear quoted in the call to " "@code{boundp}." msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:504 msgid "" "You can tell the compiler that a function is defined using " "@code{declare-function}. @xref{Declaring Functions}." msgstr "" #. type: itemize #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:511 msgid "" "Likewise, you can tell the compiler that a variable is defined using " "@code{defvar} with no initial value. (Note that this marks the variable as " "special, i.e.@: dynamically bound, but only within the current lexical " "scope, or file if at top-level.) @xref{Defining Variables}." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:515 msgid "" "You can also suppress compiler warnings within a certain expression using " "the @code{with-suppressed-warnings} macro:" msgstr "" #. type: defspec #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:516 #, no-wrap msgid "with-suppressed-warnings warnings body@dots{}" msgstr "" #. type: defspec #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:523 msgid "" "In execution, this is equivalent to @code{(progn @var{body}...)}, but the " "compiler does not issue warnings for the specified conditions in " "@var{body}. @var{warnings} is an associative list of warning symbols and " "function/variable symbols they apply to. For instance, if you wish to call " "an obsolete function called @code{foo}, but want to suppress the compilation " "warning, say:" msgstr "" #. type: lisp #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:527 #, no-wrap msgid "" "(with-suppressed-warnings ((obsolete foo))\n" " (foo ...))\n" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:532 msgid "" "For more coarse-grained suppression of compiler warnings, you can use the " "@code{with-no-warnings} construct:" msgstr "" #. type: defspec #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:536 #, no-wrap msgid "with-no-warnings body@dots{}" msgstr "" #. type: defspec #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:540 msgid "" "In execution, this is equivalent to @code{(progn @var{body}...)}, but the " "compiler does not issue warnings for anything that occurs inside @var{body}." msgstr "" #. type: defspec #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:545 msgid "" "We recommend that you use @code{with-suppressed-warnings} instead, but if " "you do use this construct, that you use it around the smallest possible " "piece of code to avoid missing possible warnings other than one you intend " "to suppress." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:550 msgid "" "Byte compiler warnings can be controlled more precisely by setting the " "variable @code{byte-compile-warnings}. See its documentation string for " "details." msgstr "" #. type: vindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:551 #, no-wrap msgid "byte-compile-error-on-warn" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:555 msgid "" "Sometimes you may wish the byte-compiler warnings to be reported using " "@code{error}. If so, set @code{byte-compile-error-on-warn} to a " "non-@code{nil} value." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:557 #, no-wrap msgid "Byte-Code Function Objects" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:558 #, no-wrap msgid "compiled function" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:559 #, no-wrap msgid "byte-code function" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:560 #, no-wrap msgid "byte-code object" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:566 msgid "" "Byte-compiled functions have a special data type: they are @dfn{byte-code " "function objects}. Whenever such an object appears as a function to be " "called, Emacs uses the byte-code interpreter to execute the byte-code." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:573 msgid "" "Internally, a byte-code function object is much like a vector; its elements " "can be accessed using @code{aref}. Its printed representation is like that " "for a vector, with an additional @samp{#} before the opening @samp{[}. It " "must have at least four elements; there is no maximum number, but only the " "first six elements have any normal use. They are:" msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:575 #, no-wrap msgid "argdesc" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:583 msgid "" "The descriptor of the arguments. This can either be a list of arguments, as " "described in @ref{Argument List}, or an integer encoding the required number " "of arguments. In the latter case, the value of the descriptor specifies the " "minimum number of arguments in the bits zero to 6, and the maximum number of " "arguments in bits 8 to 14. If the argument list uses @code{&rest}, then bit " "7 is set; otherwise it's cleared." msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:588 msgid "" "If @var{argdesc} is a list, the arguments will be dynamically bound before " "executing the byte code. If @var{argdesc} is an integer, the arguments will " "be instead pushed onto the stack of the byte-code interpreter, before " "executing the code." msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:591 msgid "The string containing the byte-code instructions." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:592 #, no-wrap msgid "constants" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:595 msgid "" "The vector of Lisp objects referenced by the byte code. These include " "symbols used as function names and variable names." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:596 #, no-wrap msgid "stacksize" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:598 msgid "The maximum stack size this function needs." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:599 #, no-wrap msgid "docstring" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:604 msgid "" "The documentation string (if any); otherwise, @code{nil}. The value may be " "a number or a list, in case the documentation string is stored in a file. " "Use the function @code{documentation} to get the real documentation string " "(@pxref{Accessing Documentation})." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:605 #, no-wrap msgid "interactive" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:608 msgid "" "The interactive spec (if any). This can be a string or a Lisp expression. " "It is @code{nil} for a function that isn't interactive." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:613 msgid "" "Here's an example of a byte-code function object, in printed " "representation. It is the definition of the command @code{backward-sexp}." msgstr "" #. type: example #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:621 #, no-wrap msgid "" "#[256\n" " \"\\211\\204^G^@@\\300\\262^A\\301^A[!\\207\"\n" " [1 forward-sexp]\n" " 3\n" " 1793299\n" " \"^p\"]\n" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:625 msgid "" "The primitive way to create a byte-code object is with " "@code{make-byte-code}:" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:626 #, no-wrap msgid "make-byte-code &rest elements" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:629 msgid "" "This function constructs and returns a byte-code function object with " "@var{elements} as its elements." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:635 msgid "" "You should not try to come up with the elements for a byte-code function " "yourself, because if they are inconsistent, Emacs may crash when you call " "the function. Always leave it to the byte compiler to create these objects; " "it makes the elements consistent (we hope)." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:637 #, no-wrap msgid "Disassembled Byte-Code" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:638 #, no-wrap msgid "disassembled byte-code" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:644 msgid "" "People do not write byte-code; that job is left to the byte compiler. But " "we provide a disassembler to satisfy a cat-like curiosity. The disassembler " "converts the byte-compiled code into human-readable form." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:650 msgid "" "The byte-code interpreter is implemented as a simple stack machine. It " "pushes values onto a stack of its own, then pops them off to use them in " "calculations whose results are themselves pushed back on the stack. When a " "byte-code function returns, it pops a value off the stack and returns it as " "the value of the function." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:654 msgid "" "In addition to the stack, byte-code functions can use, bind, and set " "ordinary Lisp variables, by transferring values between variables and the " "stack." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:655 #, no-wrap msgid "Command disassemble object &optional buffer-or-name" msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:662 msgid "" "This command displays the disassembled code for @var{object}. In " "interactive use, or if @var{buffer-or-name} is @code{nil} or omitted, the " "output goes in a buffer named @file{*Disassemble*}. If @var{buffer-or-name} " "is non-@code{nil}, it must be a buffer or the name of an existing buffer. " "Then the output goes there, at point, and point is left before the output." msgstr "" #. type: deffn #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:667 msgid "" "The argument @var{object} can be a function name, a lambda expression " "(@pxref{Lambda Expressions}), or a byte-code object (@pxref{Byte-Code " "Objects}). If it is a lambda expression, @code{disassemble} compiles it and " "disassembles the resulting compiled code." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:672 msgid "" "Here are two examples of using the @code{disassemble} function. We have " "added explanatory comments to help you relate the byte-code to the Lisp " "source; these do not appear in the output of @code{disassemble}." msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:680 #, no-wrap msgid "" "(defun factorial (integer)\n" " \"Compute factorial of an integer.\"\n" " (if (= 1 integer) 1\n" " (* integer (factorial (1- integer)))))\n" " @result{} factorial\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:685 #, no-wrap msgid "" "(factorial 4)\n" " @result{} 24\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:692 #, no-wrap msgid "" "(disassemble 'factorial)\n" " @print{} byte-code for factorial:\n" " doc: Compute factorial of an integer.\n" " args: (integer)\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:698 #, no-wrap msgid "" "0 varref integer ; @r{Get the value of @code{integer} and}\n" " ; @r{push it onto the stack.}\n" "1 constant 1 ; @r{Push 1 onto stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:702 #, no-wrap msgid "" "2 eqlsign ; @r{Pop top two values off stack, compare}\n" " ; @r{them, and push result onto stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:708 #, no-wrap msgid "" "3 goto-if-nil 1 ; @r{Pop and test top of stack;}\n" " ; @r{if @code{nil}, go to 1, else continue.}\n" "6 constant 1 ; @r{Push 1 onto top of stack.}\n" "7 return ; @r{Return the top element of the stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:718 #, no-wrap msgid "" "8:1 varref integer ; @r{Push value of @code{integer} onto stack.}\n" "9 constant factorial ; @r{Push @code{factorial} onto stack.}\n" "10 varref integer ; @r{Push value of @code{integer} onto stack.}\n" "11 sub1 ; @r{Pop @code{integer}, decrement value,}\n" " ; @r{push new value onto stack.}\n" "12 call 1 ; @r{Call function @code{factorial} using first}\n" " ; @r{(i.e., top) stack element as argument;}\n" " ; @r{push returned value onto stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:723 #, no-wrap msgid "" "13 mult ; @r{Pop top two values off stack, multiply}\n" " ; @r{them, and push result onto stack.}\n" "14 return ; @r{Return the top element of the stack.}\n" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:727 msgid "The @code{silly-loop} function is somewhat more complex:" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:737 #, no-wrap msgid "" "(defun silly-loop (n)\n" " \"Return time before and after N iterations of a loop.\"\n" " (let ((t1 (current-time-string)))\n" " (while (> (setq n (1- n))\n" " 0))\n" " (list t1 (current-time-string))))\n" " @result{} silly-loop\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:744 #, no-wrap msgid "" "(disassemble 'silly-loop)\n" " @print{} byte-code for silly-loop:\n" " doc: Return time before and after N iterations of a loop.\n" " args: (n)\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:749 #, no-wrap msgid "" "0 constant current-time-string ; @r{Push @code{current-time-string}}\n" " ; @r{onto top of stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:753 #, no-wrap msgid "" "1 call 0 ; @r{Call @code{current-time-string} with no}\n" " ; @r{argument, push result onto stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:756 #, no-wrap msgid "" "2 varbind t1 ; @r{Pop stack and bind @code{t1} to popped " "value.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:761 #, no-wrap msgid "" "3:1 varref n ; @r{Get value of @code{n} from the environment}\n" " ; @r{and push the value on the stack.}\n" "4 sub1 ; @r{Subtract 1 from top of stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:767 #, no-wrap msgid "" "5 dup ; @r{Duplicate top of stack; i.e., copy the top}\n" " ; @r{of the stack and push copy onto stack.}\n" "6 varset n ; @r{Pop the top of the stack,}\n" " ; @r{and bind @code{n} to the value.}\n" "\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:770 #, no-wrap msgid "" ";; @r{(In effect, the sequence @code{dup varset} copies the top of the " "stack}\n" ";; @r{into the value of @code{n} without popping it.)}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:777 #, no-wrap msgid "" "7 constant 0 ; @r{Push 0 onto stack.}\n" "8 gtr ; @r{Pop top two values off stack,}\n" " ; @r{test if @var{n} is greater than 0}\n" " ; @r{and push result onto stack.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:782 #, no-wrap msgid "" "9 goto-if-not-nil 1 ; @r{Goto 1 if @code{n} > 0}\n" " ; @r{(this continues the while loop)}\n" " ; @r{else continue.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:788 #, no-wrap msgid "" "12 varref t1 ; @r{Push value of @code{t1} onto stack.}\n" "13 constant current-time-string ; @r{Push @code{current-time-string}}\n" " ; @r{onto the top of the stack.}\n" "14 call 0 ; @r{Call @code{current-time-string} again.}\n" msgstr "" #. type: group #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:794 #, no-wrap msgid "" "15 unbind 1 ; @r{Unbind @code{t1} in local environment.}\n" "16 list2 ; @r{Pop top two elements off stack, create a}\n" " ; @r{list of them, and push it onto stack.}\n" "17 return ; @r{Return value of the top of stack.}\n" msgstr "" #. type: node #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:797 #, no-wrap msgid "Native Compilation" msgstr "" #. type: chapter #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:798 #, no-wrap msgid "Compilation of Lisp to Native Code" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:799 #, no-wrap msgid "native compilation" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:800 #, no-wrap msgid "compilation to native code (Emacs Lisp)" msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:802 #, no-wrap msgid "native code" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:811 msgid "" "In addition to the byte-compilation, described in @ref{Byte Compilation, the " "previous chapter}, Emacs can also optionally compile Lisp function " "definitions into a true compiled code, known as @dfn{native code}. This " "feature uses the @file{libgccjit} library, which is part of the GCC " "distribution, and requires that Emacs be built with support for using that " "library. It also requires to have GCC and Binutils (the assembler and " "linker) available on your system for you to be able to native-compile Lisp " "code." msgstr "" #. type: vindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:812 #, no-wrap msgid "native-compile@r{, a Lisp feature}" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:816 msgid "" "To determine whether the current Emacs process can produce and load " "natively-compiled Lisp code, call @code{native-comp-available-p} " "(@pxref{Native-Compilation Functions})." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:822 msgid "" "Unlike byte-compiled code, natively-compiled Lisp code is executed directly " "by the machine's hardware, and therefore runs at full speed that the host " "CPU can provide. The resulting speedup generally depends on what the Lisp " "code does, but is usually 2.5 to 5 times faster than the corresponding " "byte-compiled code." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:830 msgid "" "Since native code is generally incompatible between different systems, the " "natively-compiled code is @emph{not} transportable from one machine to " "another, it can only be used on the same machine where it was produced or on " "very similar ones (having the same CPU and run-time libraries). The " "transportability of natively-compiled code is the same as that of shared " "libraries (@file{.so} or @file{.dll} files)." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:841 msgid "" "Libraries of natively-compiled code include crucial dependencies on Emacs " "Lisp primitives (@pxref{What Is a Function}) and their calling conventions, " "and thus Emacs usually won't load natively-compiled code produced by earlier " "or later Emacs versions; native compilation of the same Lisp code by a " "different Emacs version will usually produce a natively-compiled library " "under a unique file name that only that version of Emacs will be able to " "load. However, the use of unique file names allows to have in the same " "directory several versions of the same Lisp library natively-compiled by " "several different versions of Emacs." msgstr "" #. type: vindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:842 #, no-wrap msgid "no-native-compile" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:849 msgid "" "A non-@code{nil} file-local variable binding of @code{no-byte-compile} " "(@pxref{Byte Compilation}) also disables the native compilation of that " "file. In addition, a similar variable @code{no-native-compile} disables " "just the native compilation of the file. If both @code{no-byte-compile} and " "@code{no-native-compile} are specified, the former takes precedence." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:853 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:855 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:856 #, no-wrap msgid "Native-Compilation Functions" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:853 msgid "Functions to natively-compile Lisp." msgstr "" #. type: section #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:853 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:969 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:970 #, no-wrap msgid "Native-Compilation Variables" msgstr "" #. type: menuentry #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:853 msgid "Variables controlling native compilation." msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:857 #, no-wrap msgid "native-compilation functions" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:865 msgid "" "Native-Compilation is implemented as a side effect of byte-compilation " "(@pxref{Byte Compilation}). Thus, compiling Lisp code natively always " "produces its byte code as well, and therefore all the rules and caveats of " "preparing Lisp code for byte compilation (@pxref{Compilation Functions}) are " "valid for native-compilation as well." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:871 msgid "" "You can natively-compile either a single function or macro definition, or a " "whole file of Lisp code, with the @code{native-compile} function. " "Natively-compiling a file will produce both the corresponding @file{.elc} " "file with byte code and the @file{.eln} file with native code." msgstr "" #. type: findex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:872 #, no-wrap msgid "native-comp-limple-mode" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:873 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1005 #, no-wrap msgid "native-comp-verbose" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:882 msgid "" "Native compilation might produce warning or error messages; these are " "normally recorded in the buffer called @file{*Native-compile-Log*}. In " "interactive sessions, it uses the special LIMPLE mode " "(@code{native-comp-limple-mode}), which sets up @code{font-lock} as " "appropriate for this log, and is otherwise the same as Fundamental mode. " "Logging of messages resulting from native-compilation can be controlled by " "the @code{native-comp-verbose} variable (@pxref{Native-Compilation " "Variables})." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:887 msgid "" "When Emacs is run non-interactively, messages produced by native-compilation " "are reported by calling @code{message} (@pxref{Displaying Messages}), and " "are usually displayed on the standard error stream of the terminal from " "which Emacs was invoked." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:888 #, no-wrap msgid "native-compile function-or-file &optional output" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:899 msgid "" "This function compiles @var{function-or-file} into native code. The " "argument @var{function-or-file} can be a function symbol, a Lisp form, or a " "name (a string) of the file which contains the Emacs Lisp source code to " "compile. If the optional argument @var{output} is provided, it must be a " "string specifying the name of the file to write the compiled code into. " "Otherwise, if @var{function-or-file} is a function or a Lisp form, this " "function returns the compiled object, and if @var{function-or-file} is a " "file name, the function returns the full absolute name of the file it " "created for the compiled code. The output file is by default given the " "@file{.eln} extension." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:904 msgid "" "This function runs the final phase of the native compilation, which invokes " "GCC via @file{libgccjit}, in a separate subprocess, which invokes the same " "Emacs executable as the process that called this function." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:906 #, no-wrap msgid "batch-native-compile &optional for-tarball" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:920 msgid "" "This function runs native-compilation on files specified on the Emacs " "command line in batch mode. It must be used only in a batch execution of " "Emacs, as it kills Emacs upon completion of the compilation. If one or more " "of the files fail to compile, the Emacs process will attempt to compile all " "the other files, and will terminate with a non-zero status code. The " "optional argument @var{for-tarball}, if non-@code{nil}, tells the function " "to place the resulting @file{.eln} files in the last directory mentioned in " "@code{native-comp-eln-load-path} (@pxref{Library Search}); this is meant to " "be used as part of building an Emacs source tarball for the first time, when " "the natively-compiled files, which are absent from the source tarball, " "should be generated in the build tree instead of the user's cache directory." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:928 msgid "" "Native compilation can be run entirely asynchronously, in a subprocess of " "the main Emacs process. This leaves the main Emacs process free to use " "while the compilation runs in the background. This is the method used by " "Emacs to natively-compile any Lisp file or byte-compiled Lisp file that is " "loaded into Emacs, when no natively-compiled file for it is available." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:929 #, no-wrap msgid "native-compile-async files &optional recursively load selector" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:939 msgid "" "This function compiles the named @var{files} asynchronously. The argument " "@var{files} should be a single file name (a string) or a list of one or more " "file and/or directory names. If directories are present in the list, the " "optional argument @var{recursively} should be non-@code{nil} to cause the " "compilation to recurse into those directories. If @var{load} is " "non-@code{nil}, Emacs will load each file that it succeeded to compile. The " "optional argument @var{selector} allows control of which of @var{files} will " "be compiled; it can have one of the following values:" msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:941 #, no-wrap msgid "@code{nil} or omitted" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:943 msgid "Select all the files and directories in @var{files}." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:943 #, no-wrap msgid "a regular expression string" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:945 msgid "Select the files and directories whose names match the regexp." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:945 #, no-wrap msgid "a function" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:949 msgid "" "A predicate function, which will be called with each file and directory in " "@var{files}, and should return non-@code{nil} if the file or the directory " "should be selected for compilation." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:956 msgid "" "On systems with multiple CPU execution units, when @var{files} names more " "than one file, this function will normally start several compilation " "subprocesses in parallel, under the control of " "@code{native-comp-async-jobs-number} (@pxref{Native-Compilation Variables})." msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:960 msgid "" "The following function allows Lisp programs to test whether " "native-compilation is available at runtime." msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:961 #, no-wrap msgid "native-comp-available-p" msgstr "" #. type: defun #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:967 msgid "" "This function returns non-@code{nil} if the running Emacs process has the " "native-compilation support compiled into it. On systems that load " "@file{libgccjit} dynamically, it also makes sure that library is available " "and can be loaded. Lisp programs that need to know up front whether " "native-compilation is available should use this predicate." msgstr "" #. type: cindex #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:971 #, no-wrap msgid "native-compilation variables" msgstr "" #. type: Plain text #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:975 msgid "This section documents the variables that control native-compilation." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:976 #, no-wrap msgid "native-comp-speed" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:984 msgid "" "This variable specifies the optimization level for native compilation. Its " "value should be a number between @minus{}1 and 3. Values between 0 and 3 " "specify the optimization levels equivalent to the corresponding compiler " "@option{-O0}, @option{-O1}, etc.@: command-line options of the compiler. " "The value @minus{}1 means disable native-compilation; functions and files " "will be only byte-compiled. The default value is 2." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:986 #, no-wrap msgid "native-comp-debug" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:990 msgid "" "This variable specifies the level of debugging information produced by " "native-compilation. Its value should be a number between zero and 3, with " "the following meaning:" msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:992 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1014 #, no-wrap msgid "0" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:994 msgid "No debugging output. This is the default." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:994 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1016 #, no-wrap msgid "1" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:997 msgid "" "Emit debugging symbols with the native code. This allows easier debugging " "of the native code with debuggers such as @command{gdb}." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:997 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1018 #, no-wrap msgid "2" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:999 msgid "Like 1, and in addition dump pseudo-C code." msgstr "" #. type: item #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:999 #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1021 #, no-wrap msgid "3" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1002 msgid "" "Like 2, and in addition dump the GCC intermediate passes and " "@file{libgccjit} log file." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1012 msgid "" "This variable controls the verbosity of native-compilation by suppressing " "some or all of the log messages emitted by it. If its value is zero, the " "default, all of the log messages are suppressed. Setting it to a value " "between 1 and 3 will allow logging of the messages whose level is above the " "value. The values have the following interpretations:" msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1016 msgid "No logging. This is the default." msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1018 msgid "Log the final @acronym{LIMPLE} representation of the code." msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1021 msgid "" "Log the @acronym{LAP}, the final @acronym{LIMPLE}, and some additional pass " "info." msgstr "" #. type: table #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1023 msgid "Maximum verbosity: log everything." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1026 #, no-wrap msgid "native-comp-async-jobs-number" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1032 msgid "" "This variable determines the maximum number of native-compilation " "subprocesses that will be started simultaneously. It should be a " "non-negative number. The default value is zero, which means use half the " "number of the CPU execution units, or 1 if the CPU has only one execution " "unit." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1034 #, no-wrap msgid "native-comp-async-report-warnings-errors" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1041 msgid "" "If this variable's value is non-@code{nil}, warnings and errors from " "asynchronous native-compilation subprocesses are reported in the main Emacs " "session in a buffer named @file{*Warnings*}. The default value @code{t} " "means display the resulting buffer. To log warnings without popping up the " "@file{*Warnings*} buffer, set this variable to @code{silent}." msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1043 #, no-wrap msgid "native-comp-async-query-on-exit" msgstr "" #. type: defopt #: /Users/suzume/Documents/Repositories/Projet OmegaT de Documentation Emacs - #: Sources/doc/lispref/compile.texi:1049 msgid "" "If this variable's value is non-nil, Emacs will query upon exiting whether " "to exit and kill any asynchronous native-compilation subprocesses that are " "still running, thus preventing the corresponding @file{.eln} files from " "being written. If the value is @code{nil}, the default, Emacs will kill " "these subprocesses without querying." msgstr ""