emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117988: Fix last change in lispref.


From: Eli Zaretskii
Subject: [Emacs-diffs] trunk r117988: Fix last change in lispref.
Date: Tue, 30 Sep 2014 16:21:58 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117988
revision-id: address@hidden
parent: address@hidden
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Tue 2014-09-30 19:21:22 +0300
message:
  Fix last change in lispref.
  
   doc/lispref/internals.texi (Stack-allocated Objects): Minor improvements of
   the wording and the indexing.
modified:
  doc/lispref/ChangeLog          changelog-20091113204419-o5vbwnq5f7feedwu-6155
  doc/lispref/internals.texi     
internals.texi-20091113204419-o5vbwnq5f7feedwu-6188
=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2014-09-30 15:35:16 +0000
+++ b/doc/lispref/ChangeLog     2014-09-30 16:21:22 +0000
@@ -1,3 +1,8 @@
+2014-09-30  Eli Zaretskii  <address@hidden>
+
+       * internals.texi (Stack-allocated Objects): Minor improvements of
+       the wording and the indexing.
+
 2014-09-30  Dmitry Antipov  <address@hidden>
 
        * internals.texi (Stack-allocated Objects): Describe this feature.

=== modified file 'doc/lispref/internals.texi'
--- a/doc/lispref/internals.texi        2014-09-30 15:35:16 +0000
+++ b/doc/lispref/internals.texi        2014-09-30 16:21:22 +0000
@@ -533,27 +533,29 @@
 @node Stack-allocated Objects
 @section Stack-allocated Objects
 
address@hidden stack allocation overview
address@hidden stack allocated Lisp objects
address@hidden Lisp objects, stack-allocated
   The garbage collector described above is used to manage data visible
-from Lisp program, as well as the most of data internally used by the
-interpreter.  But sometimes it may be useful to allocate temporary
-internal (i.e. not visible for Lisp program) objects using C stack of
-an interpreter.  Currently conses and strings are the only objects which
-can be allocated in that way.  Strings are limited to ASCII characters
-only and should be treated as immutable (calling @code{ASET} on them is
-undefined).
+from Lisp programs, as well as most of the data internally used by the
+Lisp interpreter.  But sometimes it may be useful to allocate
+temporary internal (i.e.@: not visible for a Lisp program) objects
+using the C stack of the interpreter.  Currently, only cons cells and
+strings can be allocated that way.  Stack-allocated strings are
+limited to @acronym{ASCII} characters only, and should be treated as
+immutable (calling @code{ASET} on them produces undefined behavior).
 
address@hidden stack allocation internals
-  In C, this is implemented as a special macros which expands to
-a @code{Lisp_Object} with block-scoped semantics and lifetime (see
-the code around @code{USE_STACK_LISP_OBJECTS} in @file{lisp.h}).  This
-means that these objects are not managed by the garbage collector;
-instead, they are allocated like local variables in C and automatically
-freed when an execution reaches an end of the corresponding scope.  Thus,
-allocation and freeing are faster than using garbage collector.  But
-remember that passing them out of their scope results in undefined
-behavior.  Think twice before using this feature and carefully debug
-your code with @code{GC_CHECK_MARKED_OBJECTS} (see @file{alloc.c}).
+  In C, this is implemented as special macros which expand into a
address@hidden with block-scoped semantics and lifetime (see the
+code around @code{USE_STACK_LISP_OBJECTS} in @file{src/lisp.h}).  This
+means that these objects are not freed by the garbage collector;
+instead, they are allocated like local variables in C and
+automatically freed when execution goes out of the scope where the
+object was allocated.  Thus, allocating and freeing these objects is
+faster than when using heap memory to allocate and the garbage
+collector to free their memory.  Note that using such objects out of
+their scope will result in undefined behavior, so code using them
+should be well thought out and carefully debugged by using the
address@hidden feature (see @file{src/alloc.c}).
 
 @node Memory Usage
 @section Memory Usage


reply via email to

[Prev in Thread] Current Thread [Next in Thread]