-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathChanges.xml
101 lines (100 loc) · 4.09 KB
/
Changes.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<changelog xmlns:r="http://www.r-project.org">
<version>
<change>
Simple assignments of the form <r:expr>x = 2</r:expr> will treat the right-hand-side
as an integer if <r:arg>.integerLiterals</r:arg> is <r:true/>.
In other words, when the value of an assignment is a literal
</change>
<change>
<r:func>compileFunction</r:func> adds information about the specific type of SEXPType
of a parameter declaration as metadata in the Module. This allows the information
to be recovered.
</change>
<change>
<r:func>compileFunction</r:func> can optionally add information about external routines
called by a generated function as metadata in the Module. This allows other <r/> sessions
or applications to resolve those symbols.
The symbol information is metadata named symbolInfo.routineName and
is given in pairs of values corresponding to the name of the package and the full path to the
DLL.
The function <r:func>getSymbolInfoMetadata</r:func> can be used to retrieve this information.
</change>
<change>
<r:func>compileFunction</r:func> adds a readonly attribute to Arguments/parameters in
a generated function for pointer types that are determined to be constant based on
analysis via <r:func>constInputs</r:func> in the <omg:pkg>CodeAnalysis</omg:pkg> package.
</change>
<change>
Reorganization for handling if expressions within for and while loops.
</change>
<change>
<r:pkg>CodeAnalysis</r:pkg> package on github.com:duncantl/CodeAnalysis.
</change>
<change>
<r:func>getGlobals</r:func> also recognizes degenerate <r:expr>if(TRUE/FALSE)</r:expr>
conditions and does not process unreachable code.
</change>
<change>
Compiling <r:expr>if(cond)</r:expr>, we identify degenerate cases where the condition
is known at compile time, i.e. TRUE or FALSE literals.
</change>
<change>
<r:func>stop</r:func> and <r:func>.assert</r:func> (or any other name for an assertion call)
can support a <r:expr>class = value</r:expr> argument and the value can be a string
or a vector of strings specifying the class names for the condition that will be raised.
This will hopefully support raising errors which we can differentiate between
based on their classes using <r:func>tryCatch</r:func>.
The <r:func>stop</r:func> and <r:func>.assert</r:func>function in the package supports the <r:arg>class</r:arg> argument also
to allow the code to work in <r/>.
</change>
<change>
Support for <r:func>.debug</r:func> and <r:func>.assert</r:func> and
other names for assert functions (e.g. <r:func>asser_that</r:func>, <r:func>assertthat</r:func>)
</change>
<change>
Basic support for <r:func>stop</r:func> in compiled code. Currently, the message is a fixed
string. (This is easy to relax, just not done yet.)
</change>
<change>
<r:expr>.R(expr, list(retType, list(type, type)))</r:expr> now works.
See explorations/dotRCallback.R.
.R() avoids having to specify the types in the call to <r:func>compileFunction</r:func>
via the <r:arg>.CallableRFunctions</r:arg>.
</change>
<change>
Added .varDecl() for declaring variable types. This can be of the form
<r:expr>.varDecl(x = type, y = type)</r:expr>. This is different from the
<r:func>.typeInfo</r:func>/<r:func>.typeInfo</r:func>
</change>
<change>
Added <r:func>.typeInfo</r:func> and <r:func>.signature</r:func> for specifying type information for a function. Currently, it has to be the first
expression in the body of the function.
</change>
<change>
Extensive additions for calling back to R from within the compiled code.
</change>
<change>
Basic subsetting for matrices, data frames.
</change>
<change>
DataFrameType, MatrixType and ArrayType type classes for dimensioned types.
</change>
<change>
Fixes for if expressions within loops (for and while) and how to find the next block.
</change>
<change>
Many tests/examples in tests/
</change>
</version>
<version>
<change><![CDATA[
Support for composite conditions, e.g. x == 1 || y < 2, and more than 2 conditions.
]]></change>
<change>
Register the function being compiled so that it can call itself recursively,
i.e. we can generate code to call the function itself as part of its own body.
</change>
<change>
<r:func>getTypes</r:func> can look up the type of a variable.
</change>
</version>