- Subset (
[
) and subassign (x[s] <- y
) with strictly positive indices. - Relational (
>
,>=
,<
,<=
) and equality operators (==
,!=
). - Logical functions:
- Operators (
&
,|
,&&
,||
). all
andany
.ifelse
, with the caveat the return value type is based on the combination ofyes
andno
irrespective of whether one or both of them are used.
- Operators (
- Unary operators (
-
,+
, and!
). - Vector generation:
rep
seq_along
c
,numeric
(andr2c
onlynumeric_along
).
- Control structures, with significant constraints (see
?
r2c-control-structures
):if
/else
/else if
.for
- Constant arbitrary R expressions may be embedded, with constraints (see
?
r2c-expression-types
). - Iteration level interrupts (e.g. between groups, windows).
- Improved top-level documentation.
- Direct calls to "r2c_fun" no longer use
group_exec_int
internally and thus save the cost of allocating a dummy group vector. - Dynamic libraries are unloaded when the "r2c_fun" object they are linked to is
garbage collected (see
?unload_r2c_dynlibs
for limitations). - Detect whether to use
pow
orpowl
C exponentiation functions to match Windows behavior.
- Implement assignment (
<-
,=
) and multi-line statements with braces ({
). - Optimize expressions by reusing repeated sub-calls instead of re-evaluating
them (see
reuse_calls
, which can potentially be used outside ofr2c
). - Add limited
::
support so it is possible to use the compilation functions onr2c
provided R functions withoutr2c
attached. - Add
r2cf
to directly compile R functions composed ofr2c
compatible calls.
Recall the API is unstable and may still change further over the next few releases.
r2c
has been renamedr2cl
.envir
parameter to the runner functions has been dropped. Now "r2c_fun" functions always evaluate in the lexical environment they were created in. In the future there might be facilities to change that environment.
roll*_exec
to applyr2c
functions on sliding windows of data.group_exec
accepts factor group columns.
Recall the API is unstable and may still change further over the next few releases.
group_exec
parameters re-ordered to align withroll*_exec
.
Initial release:
r2c
for basic aggregation and arithmetic operations.group_exec
to repeatedly apply them on groups.