aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/internals.texi35
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 0e7a1339e76..10f49c569fa 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -1508,6 +1508,41 @@ function raises the @code{overflow-error} error condition if
1508string. 1508string.
1509@end deftypefn 1509@end deftypefn
1510 1510
1511If you define the preprocessor macro @code{EMACS_MODULE_GMP} before
1512including the header @file{emacs-module.h}, you can also convert
1513between Emacs integers and GMP @code{mpz_t} values. @xref{GMP
1514Basics,,,gmp}. If @code{EMACS_MODULE_GMP} is defined,
1515@file{emacs-module.h} wraps @code{mpz_t} in the following structure:
1516
1517@deftp struct emacs_mpz value
1518struct emacs_mpz @{ mpz_t value; @};
1519@end deftp
1520
1521@noindent
1522Then you can use the following additional functions:
1523
1524@deftypefn Function bool extract_big_integer (emacs_env *@var{env}, emacs_value @var{arg}, struct emacs_mpz *@var{result})
1525This function, which is available since Emacs 27, extracts the
1526integral value of @var{arg} into @var{result}. @var{result} must not
1527be @code{NULL}. @code{@var{result}->value} must be an initialized
1528@code{mpz_t} object. @xref{Initializing Integers,,,gmp}. If
1529@var{arg} is an integer, Emacs will store its value into
1530@code{@var{result}->value}. After you have finished using
1531@code{@var{result}->value}, you should free it using @code{mpz_clear}
1532or similar.
1533@end deftypefn
1534
1535@deftypefn Function emacs_value make_big_integer (emacs_env *@var{env}, const struct emacs_mpz *@var{value})
1536This function, which is available since Emacs 27, takes an
1537arbitrary-sized integer argument and returns a corresponding
1538@code{emacs_value} object. @var{value} must not be @code{NULL}.
1539@code{@var{value}->value} must be an initialized @code{mpz_t} object.
1540@xref{Initializing Integers,,,gmp}. Emacs will return a corresponding
1541integral object. After you have finished using
1542@code{@var{value}->value}, you should free it using @code{mpz_clear}
1543or similar.
1544@end deftypefn
1545
1511The @acronym{API} does not provide functions to manipulate Lisp data 1546The @acronym{API} does not provide functions to manipulate Lisp data
1512structures, for example, create lists with @code{cons} and @code{list} 1547structures, for example, create lists with @code{cons} and @code{list}
1513(@pxref{Building Lists}), extract list members with @code{car} and 1548(@pxref{Building Lists}), extract list members with @code{car} and