[PATCH] D156858: Add Documentation for Execution Results Handling in Clang-REPL
Vassil Vassilev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 13 07:34:28 PDT 2023
v.g.vassilev added inline comments.
================
Comment at: clang/docs/ClangRepl.rst:221
+
+Execution Results Handling features discussed below help extend the Clang-REPL
+functionality by creating an interface between the execution results of a
----------------
We should probably spell consistently `Clang-Repl`.
================
Comment at: clang/docs/ClangRepl.rst:248
+
+.. image:: valuesynth.png
+ :align: center
----------------
Can we replace that with its graphviz version?
================
Comment at: clang/docs/ClangRepl.rst:264
+The Value object is essentially used to create a mapping between an expression
+'type' and the 'memory' to be allocated. Built-in types (bool, char, int,
+float, double, etc.) are simpler, since their memory allocation size is known.
----------------
================
Comment at: clang/docs/ClangRepl.rst:265
+'type' and the 'memory' to be allocated. Built-in types (bool, char, int,
+float, double, etc.) are simpler, since their memory allocation size is known.
+In case of objects, a pointer can be saved, since the size of the object is
----------------
================
Comment at: clang/docs/ClangRepl.rst:266-267
+float, double, etc.) are simpler, since their memory allocation size is known.
+In case of objects, a pointer can be saved, since the size of the object is
+not known.
+
----------------
================
Comment at: clang/docs/ClangRepl.rst:269-274
+For further improvement, the underlying Clang Type is also identified. For
+example, ``X(char, Char_S)``, where ``Char_S`` is the Clang type. Clang types are
+very efficient, which is important since these will be used in hotspots (high
+utilization areas of the program). The ``Value.h`` header file has a very low
+token count and was developed with strict constraints in mind, since it can
+affect the performance of the interpreter.
----------------
================
Comment at: clang/docs/ClangRepl.rst:276-278
+This also enables the user to receive the computed 'type' back in their code
+and then transform the type into something else (e.g., transform a double into
+a float). Normally, the compiler can handle these conversions transparently,
----------------
================
Comment at: clang/docs/ClangRepl.rst:284
+On-request conversions can help improve the user experience, by allowing
+conversion to a desired 'to' type, when the 'from' type is unknown or unclear
+
----------------
================
Comment at: clang/docs/ClangRepl.rst:296-298
+For example, the CPPYY code makes use of this feature to enable running
+C++ within Python. It enables transporting values/information between C++
+and Python.
----------------
QuillPusher wrote:
> @Krishna-13-cyber
>
> Please change CPPYY to cppyy
>
> I just saw they use small caps on their official website
================
Comment at: clang/docs/ClangRepl.rst:352
+
+In Clang-REPL there is **interpreted code**, and this feature adds a 'value'
+runtime that can talk to the **compiled code**.
----------------
================
Comment at: clang/docs/ClangRepl.rst:404
+this feature added to upstream Clang repo has essentially extended the syntax of
+C++,so that it can be more helpful for people that are writing code for data
+science applications.
----------------
================
Comment at: clang/docs/ClangRepl.rst:419
+
+The Interpreter in Clang-REPL (``interpreter.cpp``) includes the function
+``ParseAndExecute()`` that can accept a 'Value' parameter to capture the result.
----------------
================
Comment at: clang/docs/ClangRepl.rst:461
+
+This feature uses a new token (annot_repl_input_end) to consider printing the
+value of an expression if it doesn't end with a semicolon. When parsing an
----------------
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D156858/new/
https://reviews.llvm.org/D156858
More information about the cfe-commits
mailing list