2386 lines
85 KiB
Plaintext
2386 lines
85 KiB
Plaintext
# SOME DESCRIPTIVE TITLE
|
|
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
# This file is distributed under the same license as the PACKAGE package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|