Move the docs in the parent folder as in clang.

Adjust a few options to make the docs locally buildable.
This commit is contained in:
Vassil Vassilev 2022-10-14 16:44:31 +00:00 committed by jenkins
parent 8fce36a483
commit db6637f8dc
15 changed files with 75 additions and 128 deletions

View File

@ -1,36 +0,0 @@
# Configuration file for the Sphinx documentation builder.
# -- Project information
project = 'Cling'
copyright = '2022, Cling'
author = 'Sara Bellei'
release = '0.1'
version = '0.1.0'
# -- General configuration
extensions = [
'sphinx.ext.duration',
'sphinx.ext.doctest',
'sphinx.ext.autodoc',
'sphinx.ext.autosummary',
'sphinx.ext.intersphinx',
]
intersphinx_mapping = {
'python': ('https://docs.python.org/3/', None),
'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
}
intersphinx_disabled_domains = ['std']
templates_path = ['_templates']
# -- Options for HTML output
html_theme = 'sphinx_rtd_theme'
# -- Options for EPUB output
epub_show_urls = 'footnote'

View File

@ -1,42 +0,0 @@
Cling interprets C++
=======================================
.. figure:: images/fig1.jpeg
**Cling** is an interactive C++ interpreter built on top of `Clang
<https://clang.llvm.org/>`_ and `LLVM <https://llvm.org/>`_. It uses LLVM's
*Just-In-Time* (`JIT <https://en.wikipedia.org/wiki/Just-in-time_compilation>`_)
compiler to provide a fast and optimized compilation pipeline. Cling uses the
`read-eval-print-loop
<https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
(**REPL**) approach, making rapid application development in C++ possible,
avoiding the classic edit-compile-run-debug cycle approach.
Cling's last release, download instructions, dependencies, and any other useful
information for developers can be found on `Cling's GitHub webpage
<https://github.com/vgvassilev/cling>`_.
Find out more about **Interpreting C++** on the `Compiler Research Group
<https://compiler-research.org/>`_'s webpage.
Table of Contents
--------
.. toctree::
:numbered:
chapters/background
chapters/interactivity
chapters/implementation
chapters/REPL
chapters/XEUS
chapters/cudaC++
chapters/grammar
chapters/references
.. note::
This project is under active development.
Cling has its documentation hosted on Read the Docs.

View File

@ -1,5 +1,5 @@
C++ in Jupyter Notebook - Xeus Cling C++ in Jupyter Notebook - Xeus Cling
----------------------------------- ------------------------------------
The Jupyter Notebook technology allows users to create and share documents that The Jupyter Notebook technology allows users to create and share documents that
contain live code, equations, visualizations and narrative text. It enables data contain live code, equations, visualizations and narrative text. It enables data

View File

@ -1,5 +1,5 @@
Conclusion Conclusion
----------------------------------- ----------
Cling is not just a REPL, it is an embeddable and extensible execution system Cling is not just a REPL, it is an embeddable and extensible execution system
for efficient incremental execution of C++. Cling allows us to decide how much for efficient incremental execution of C++. Cling allows us to decide how much

View File

@ -1,5 +1,5 @@
Command Line Command Line
===== ============
Cling has its own command line, which looks like any other Unix shell. The Cling has its own command line, which looks like any other Unix shell. The
emacs-like command line editor is what we call interactive command line or emacs-like command line editor is what we call interactive command line or
@ -11,13 +11,13 @@ runtime universe. Thus it creates the minimal environment for the user to start.
Grammar Grammar
------------ -------
Cling is capable to parse everything that `Clang <https://clang.llvm.org/>`_ can Cling is capable to parse everything that `Clang <https://clang.llvm.org/>`_ can
do. In addition, Cling can parse some interpreter-specific C++ extensions. do. In addition, Cling can parse some interpreter-specific C++ extensions.
Metaprocessor Metaprocessor
------------ -------------
Cling Metaprocessor provides convenient and easy to use interface for changing Cling Metaprocessor provides convenient and easy to use interface for changing
the interpreters internal state or for executing handy commands. Cling provides the interpreters internal state or for executing handy commands. Cling provides

View File

@ -1,54 +1,47 @@
Literature Literature
===== ==========
What is Cling? What is Cling?
------------ --------------
`Relaxing the One Definition Rule in Interpreted C++ `Relaxing the One Definition Rule in Interpreted C++
<https://dl.acm.org/doi/10.1145/3377555.3377901>`_ <https://dl.acm.org/doi/10.1145/3377555.3377901>`_
*Javier Lopez Gomez et al.*, 29th International Conference on Compiler *Javier Lopez Gomez et al.*, 29th International Conference on Compiler
Construction, 2020 Construction, 2020
*This paper discusses how Cling enables redefinitions of C++ entities at the *This paper discusses how Cling enables redefinitions of C++ entities at the
prompt, and the implications of interpreting C++ and the One Definition Rule prompt, and the implications of interpreting C++ and the One Definition Rule
(ODR) in C++* (ODR) in C++*
`Cling The New Interactive Interpreter for ROOT 6 `Cling The New Interactive Interpreter for ROOT 6
<https://iopscience.iop.org/article/10.1088/1742-6596/396/5/052071>`_ <https://iopscience.iop.org/article/10.1088/1742-6596/396/5/052071>`_
*V Vasilev et al* 2012 J. Phys.: Conf. Ser. 396 052071 *V Vasilev et al* 2012 J. Phys.: Conf. Ser. 396 052071
*This paper describes the link between Cling and ROOT. The concepts of REPL and *This paper describes the link between Cling and ROOT. The concepts of REPL and
JIT compilation. Clings methods for handling errors, expression evaluation, JIT compilation. Clings methods for handling errors, expression evaluation,
streaming out of execution results, runtime dynamism.* streaming out of execution results, runtime dynamism.*
`Interactive, Introspected C++ at CERN `Interactive, Introspected C++ at CERN
<https://www.youtube.com/watch?v=K2KqEV866Ro>`_ <https://www.youtube.com/watch?v=K2KqEV866Ro>`_
*V Vasilev*, CERN PH-SFT, 2013 *V Vasilev*, CERN PH-SFT, 2013
*Vassil Vasilev (Princeton University) explains how Cling enables interactivity *Vassil Vasilev (Princeton University) explains how Cling enables interactivity
in C++, and illustrates the type introspection mechanism provided by the in C++, and illustrates the type introspection mechanism provided by the
interpreter.* interpreter.*
`Introducing Cling, a C++ Interpreter Based on Clang/LLVM `Introducing Cling, a C++ Interpreter Based on Clang/LLVM
<https://www.youtube.com/watch?v=f9Xfh8pv3Fs>`_ <https://www.youtube.com/watch?v=f9Xfh8pv3Fs>`_
*Axel Naumann* 2012 Googletechtalks *Axel Naumann* 2012 Googletechtalks
*Axel Naumann (CERN) discusses Clings most relevant features: abstract syntax *Axel Naumann (CERN) discusses Clings most relevant features: abstract syntax
tree (AST) production, wrapped functions, global initialization of a function, tree (AST) production, wrapped functions, global initialization of a function,
delay expression evaluation at runtime, and dynamic scopes.* delay expression evaluation at runtime, and dynamic scopes.*
`Creating Cling, an interactive interpreter interface `Creating Cling, an interactive interpreter interface
<https://www.youtube.com/watch?v=BjmGOMJWeAo>`_ <https://www.youtube.com/watch?v=BjmGOMJWeAo>`_
*Axel Naumann* 2010 LLVM Developers meeting *Axel Naumann* 2010 LLVM Developers meeting
*This presentation introduces Cling, an ahead-of-time compiler that extends C++ *This presentation introduces Cling, an ahead-of-time compiler that extends C++
for ease of use as an interpreter.* for ease of use as an interpreter.*
.. list-table:: Title .. list-table:: Title
:widths: 25 25 50 :widths: 25 25 50
@ -57,49 +50,44 @@ What is Cling?
* - Link * - Link
- Info - Info
- Description - Description
* - `Relaxing the One Definition Rule in Interpreted C++ * - `Relaxing the One Definition Rule in Interpreted C++ <https://dl.acm.org/doi/10.1145/3377555.3377901>`_
<https://dl.acm.org/doi/10.1145/3377555.3377901>`_
- *Javier Lopez Gomez et al.* - *Javier Lopez Gomez et al.*
29th International Conference on Compiler Construction 2020 29th International Conference on Compiler Construction 2020
- This paper discusses how Cling enables redefinitions of C++ entities at the prompt, and the implications of interpreting C++ and the One Definition Rule (ODR) in C++ - This paper discusses how Cling enables redefinitions of C++ entities at the prompt, and the implications of interpreting C++ and the One Definition Rule (ODR) in C++
* - `Cling The New Interactive Interpreter for ROOT 6 * - `Cling The New Interactive Interpreter for ROOT 6 <https://iopscience.iop.org/article/10.1088/1742-6596/396/5/052071>`_
<https://iopscience.iop.org/article/10.1088/1742-6596/396/5/052071>`_
- *V Vasilev et al* 2012 J. Phys.: Conf. Ser. 396 052071 - *V Vasilev et al* 2012 J. Phys.: Conf. Ser. 396 052071
- This paper describes the link between Cling and ROOT. The concepts of - This paper describes the link between Cling and ROOT. The concepts of
REPL and JIT compilation. Clings methods for handling errors, expression REPL and JIT compilation. Clings methods for handling errors, expression
evaluation, streaming out of execution results, runtime dynamism. evaluation, streaming out of execution results, runtime dynamism.
* - `Interactive, Introspected C++ at CERN * - `Interactive, Introspected C++ at CERN <https://www.youtube.com/watch?v=K2KqEV866Ro>`_
<https://www.youtube.com/watch?v=K2KqEV866Ro>`_
- *V Vasilev*, CERN PH-SFT, 2013 - *V Vasilev*, CERN PH-SFT, 2013
- Vassil Vasilev (Princeton University) explains how Cling enables - Vassil Vasilev (Princeton University) explains how Cling enables
interactivity in C++, and illustrates the type introspection mechanism interactivity in C++, and illustrates the type introspection mechanism
provided by the interpreter. provided by the interpreter.
* - `Introducing Cling, a C++ Interpreter Based on Clang/LLVM * - `Introducing Cling, a C++ Interpreter Based on Clang/LLVM <https://www.youtube.com/watch?v=f9Xfh8pv3Fs>`_
<https://www.youtube.com/watch?v=f9Xfh8pv3Fs>`_
- *Axel Naumann* 2012 Googletechtalks - *Axel Naumann* 2012 Googletechtalks
- Axel Naumann (CERN) discusses Clings most relevant features: abstract - Axel Naumann (CERN) discusses Clings most relevant features: abstract
syntax tree (AST) production, wrapped functions, global initialization of syntax tree (AST) production, wrapped functions, global initialization of
a function, delay expression evaluation at runtime, and dynamic scopes. a function, delay expression evaluation at runtime, and dynamic scopes.
* - `Creating Cling, an interactive interpreter interface * - `Creating Cling, an interactive interpreter interface <https://www.youtube.com/watch?v=BjmGOMJWeAo>`_
<https://www.youtube.com/watch?v=BjmGOMJWeAo>`_
- *Axel Naumann* 2010 LLVM Developers meeting - *Axel Naumann* 2010 LLVM Developers meeting
- This presentation introduces Cling, an ahead-of-time compiler that - This presentation introduces Cling, an ahead-of-time compiler that
extends C++ for ease of use as an interpreter. extends C++ for ease of use as an interpreter.
Demos, tutorials, Clings ecosystem: Demos, tutorials, Clings ecosystem:
------------ ------------------------------------
Language Interoperability with Cling: Language Interoperability with Cling:
------------ -------------------------------------
Cling for interactive CUDA C++: Cling for interactive CUDA C++:
------------ -------------------------------
Cling on Jupyter: Cling on Jupyter:
------------ -----------------
Clad: Clad:
------------ -----

View File

@ -50,9 +50,15 @@ copyright = u'2007-%d, The Cling Team' % date.today().year
# built documents. # built documents.
# #
# The short version. # The short version.
version = '9'
current_file_dir = os.path.dirname(os.path.realpath(__file__))
CLING_ROOT = current_file_dir + "/.."
with open(CLING_ROOT + "/VERSION", "r") as f:
version = f.read()
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '9' release = version
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -1,13 +1,44 @@
.. Cling documentation master file, created by Cling interprets C++
sphinx-quickstart on Sun Sep 14 20:01:55 2022. ====================
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
.. title:: Welcome to Cling's documentation! .. figure:: images/fig1.jpeg
.. toctree:: **Cling** is an interactive C++ interpreter built on top of `Clang
:maxdepth: 1 <https://clang.llvm.org/>`_ and `LLVM <https://llvm.org/>`_. It uses LLVM's
*Just-In-Time* (`JIT <https://en.wikipedia.org/wiki/Just-in-time_compilation>`_)
compiler to provide a fast and optimized compilation pipeline. Cling uses the
`read-eval-print-loop
<https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>`_
(**REPL**) approach, making rapid application development in C++ possible,
avoiding the classic edit-compile-run-debug cycle approach.
Using Cling
===========
Cling's last release, download instructions, dependencies, and any other useful
information for developers can be found on `Cling's GitHub webpage
<https://github.com/vgvassilev/cling>`_.
Find out more about **Interpreting C++** on the `Compiler Research Group
<https://compiler-research.org/>`_'s webpage.
Table of Contents
-----------------
.. toctree::
:numbered:
chapters/background
chapters/interactivity
chapters/implementation
chapters/REPL
chapters/XEUS
chapters/cudaC++
chapters/grammar
chapters/references
chapters/conclusion
chapters/why_interpreting
.. note::
This project is under active development.
Cling has its documentation hosted on Read the Docs.