@@ -20,30 +20,39 @@ infrastructure are described first.
2020
2121Major New Features
2222------------------
23-
24- - Switch Cling's execution engine to use LLVM's Orc JIT. The new JIT allows
23+ * Switch Cling's execution engine to use LLVM's Orc JIT. The new JIT allows
2524Cling to support:
26- - ARM and PowerPC architectures;
27- - Exceptions. Cling can throw and catch exceptions from interpreted and
28- compiled code.
29- ```cpp
30- [ cling] $ throw new std::exception();
31- Exception occurred. Recovering...
32- ```
33- - Inline assembly. Cling can execute ` asm ` statements.
34- ``` cpp
35- [cling]$ extern "C" int printf(const char* , ...);
36- [ cling] $ int arg1=1, arg2=2, add;
37- [ cling] $ asm ("addl %%ebx, %%eax;" : "=a" (add) : "a" (arg1) , "b" (arg2));
38- [ cling] $ printf( "%d + %d = %d\n", arg1, arg2, add );
39- 1 + 2 = 3
40- ```
41- - Reduce memory usage caused by excessive memory allocations in Cling lookup
25+ + ARM and PowerPC architectures.
26+
27+ + Exceptions. Cling can throw and catch exceptions from interpreted and
28+ compiled code.
29+
30+ ```cpp
31+ [cling]$ throw new std::exception();
32+ Exception occurred. Recovering...
33+ ```
34+
35+ + Inline assembly. Cling can execute ` asm ` statements.
36+
37+ ```cpp
38+ [cling]$ extern "C" int printf(const char*, ...);
39+ [cling]$ int arg1=1, arg2=2, add;
40+ [cling]$ asm ("addl %%ebx, %%eax;" : "=a" (add) : "a" (arg1) , "b" (arg2));
41+ [cling]$ printf( "%d + %d = %d\n", arg1, arg2, add );
42+ 1 + 2 = 3
43+ ```
44+
45+ * Reduce memory usage caused by excessive memory allocations in Cling lookup
4246routines.
43- - Stabilize error recovery caused by handling of templated declarations.
44- - Implement a user-extendable value streaming engine.
45- - Implement shebang support.
46- - Protect against invalid pointer dereferences.
47+
48+ * Stabilize error recovery caused by handling of templated declarations.
49+
50+ * Implement a user-extendable value streaming engine.
51+
52+ * Implement shebang support.
53+
54+ * Protect against invalid pointer dereferences.
55+
4756 ``` cpp
4857 [cling]$ struct S { int a; };
4958 [ cling] $ ((S* )0x123)->a;
@@ -55,7 +64,9 @@ routines.
5564 ((S* )0)->a;
5665 ^~~~~~~
5766 ```
58- - Redirect stderr and stdout. Cling's users can redirect the output streams.
67+
68+ * Redirect stderr and stdout. Cling's users can redirect the output streams.
69+
5970 ``` cpp
6071 [cling]$ // Redirects stdout to /tmp/outfile.txt
6172 [cling]$ .> /tmp/outfile.txt
@@ -66,39 +77,42 @@ routines.
6677 [cling]$ // Redirects stdout and stderr to /tmp/bothfile.txt
6778 [cling]$ .&> /tmp/bothfile.txt
6879 ```
69- - Add `#pragma cling` directives:
70- - `#pragma cling add_include_path ("/include/path/")`
71- - ` #pragma cling add_library_path("/library/path/") `
72- - ` #pragma cling load("libUserLib") `
73- - Add ` .@ ` metacommand to cancel multiline user input.
74- - Add ` .debug [Constant] ` metacommand to tune the generated debug information.
80+
81+ * Add `#pragma cling` directives:
82+ + `#pragma cling add_include_path ("/include/path/")`
83+ + ` #pragma cling add_library_path("/library/path/") `
84+ + ` #pragma cling load("libUserLib") `
85+
86+ * Add ` .@ ` metacommand to cancel multiline user input.
87+
88+ * Add ` .debug [Constant] ` metacommand to tune the generated debug information.
7589
7690Cling as a Library
7791------------------
78- - Implement a generator of forward declarations from a given AST declaration.
79- - Improve string-to-decl lookup helper.
80- - Support of parent-children (multiple) interpreters.
92+ * Implement a generator of forward declarations from a given AST declaration.
93+ * Improve string-to-decl lookup helper.
94+ * Support of parent-children (multiple) interpreters.
8195
8296External Dependencies
8397---------------------
84- - Upgrade to LLVM r272382.
85- - Upgrade to CMake 3.4.3 (following LLVM requirements)
98+ * Upgrade to LLVM r272382.
99+ * Upgrade to CMake 3.4.3 (following LLVM requirements)
86100
87101Misc
88102------
89- - Add a package building script [ Cling Packaging Tool (CPT)] ( ../tools/packaging )
103+ * Add a package building script [ Cling Packaging Tool (CPT)] ( ../tools/packaging )
90104which can build Cling from source and generate installer bundles for a wide
91105range of platforms.
92- - Add [ Jupyter kernel] ( ../tools/Jupyter/kernel ) .
106+ * Add [ Jupyter kernel] ( ../tools/Jupyter/kernel ) .
93107
94108Experimental Features
95109---------------------
96- - Code unloading:
97- - Generate one module per transaction, which simplifies unloading of
110+ * Code unloading:
111+ + Generate one module per transaction, which simplifies unloading of
98112 llvm::Modules and machine code.
99- - Add support for unloading few STL header files.
100- - Dynamic Scopes:
101- - Handle of errors occurred when synthesizing AST nodes.
113+ + Add support for unloading few STL header files.
114+ * Dynamic Scopes:
115+ + Handle of errors occurred when synthesizing AST nodes.
102116
103117Fixed Bugs:
104118----------
0 commit comments