summaryrefslogtreecommitdiffstats
path: root/txr.1
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-12-15 06:29:44 -0800
committerKaz Kylheku <kaz@kylheku.com>2017-12-15 06:29:44 -0800
commitb745923e691192ebede5ca63aaa1ecfdcf4d7a31 (patch)
tree54c7803ba9312914452823a6c182c49e133f3d16 /txr.1
parent10600bbfbbc0a427369c8ea02eca9ac00f6019ac (diff)
downloadtxr-b745923e691192ebede5ca63aaa1ecfdcf4d7a31.tar.gz
txr-b745923e691192ebede5ca63aaa1ecfdcf4d7a31.tar.bz2
txr-b745923e691192ebede5ca63aaa1ecfdcf4d7a31.zip
doc: ffi: clarify in and out nuances.
* txr.1: Fix wrong wording about the by-value nuance of the in operation. What is specifically doesn't do, in contrast to the by-pointer nuance, is propagate the foreign representation back to Lisp. Not Lisp to foreign, which is opposite to the in operation. Also clarifying some wording in the description of the out operation: that the by-value nuance doesn't reconstruct from the updated Lisp structure, to help the reader keep in mind the data direction.
Diffstat (limited to 'txr.1')
-rw-r--r--txr.113
1 files changed, 7 insertions, 6 deletions
diff --git a/txr.1 b/txr.1
index 09202b9c..34403396 100644
--- a/txr.1
+++ b/txr.1
@@ -56519,10 +56519,10 @@ The in operation has two nuances: the by-value nuance and the
by-pointer nuance.
Data passed into a function by value such as function arguments or via
.code ptr-in
-are subject to the by-value nuance. Updates to these objects themselves
-do not propagate from the Lisp representation to the external representation;
-however, those objects may contain pointers requiring the by-pointer
-nuance of the in operation to be invoked.
+are subject to the by-value nuance. Updates to the foreign representation
+of these objects does not propagate back to the Lisp representation to the
+external representation; however, those objects may contain pointers requiring
+the by-pointer nuance of the in operation of those pointers to be invoked.
.NP* The \fIget\fP operation
@@ -56548,8 +56548,9 @@ operation. This operation is like the reverse of the in operation. Like
that operation, it has a by-value and by-pointer nuance.
For instance, if a callback receives a structure by value, upon return, there
-is no use in reconstructing a new version of the structure; the caller will not
-receive the change. However, if the structure contains pointers to data that
+is no use in reconstructing a new version of the structure from the updated
+Lisp structure; the caller will not receive the change. However, if the
+structure contains pointers to data that
was updated, by the callback, those changes must materialize. This is achieved
by triggering the by-value nuance of the structure type's out operation, which
will recursively invoke the out operation of embedded pointers, which will