You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+15-7Lines changed: 15 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -2,16 +2,25 @@
2
2
3
3
New features:
4
4
5
+
* new Graal LLVM based back-end for running packages native code.
6
+
* The default {FASTR_HOME}/etc/Makeconf is configured to use the Graal LLVM toolchain to build the native code of R packages.
7
+
* The toolchain builds standard native binaries for a given plarform and also embeds the corresponding LLVM bitcode in them.
8
+
* R builtin `fastr.setToolchain(name)` (`name` can be `llvm` or `native`) sets the compiler toolchain used for package building (modifies etc/Makeconf).
9
+
* To switch back to the previous toolchain configuration that used `GCC`, execute `fastr.setToolchain("native")`.
10
+
* Option `--R.BackEnd` specifies the default backend used to execute packages native code.
11
+
* Different R packages can be run via different backends in one FastR context.
12
+
*`--R.BackEnd=native`, the default, is JNI based backend that runs directly the actual native code.
13
+
*`--R.BackEnd=llvm` is the new LLVM backend that loads the LLVM bitcode embedded in package libraries and runs it via Graal LLVM.
14
+
*`--R.BackEndNative=pkg1,pkg2,...` enumerates packages whose native code will be executed by the native backend.
15
+
*`--R.BackEndLLVM=pkg1,pkg2,...` enumerates packages whose native code will be executed by the LLVM backend.
16
+
* Note: All `--R.BackEnd*` options are passed to R subprocesses.
17
+
* Debugging of packages native code with LLVM backend.
18
+
* Option `--R.DebugLLVMLibs` activates debugging of native code using the bundled LLVM bitcode.
19
+
* Builtin `fastr.useDebugMakevars(use)` activates/deactivates a special `etc/Makevars.site` tailored for building the packages native code for debugging.
5
20
*`gc` attempts to invoke Java GC when FastR is run with `--R.EnableExplicitGC=true`
6
21
* this is intended only for testing purposes and it is not recommended to run GC explicitly in FastR.
7
22
*`gc` is not invoking Java GC by default because GNU-R GC and Java GC are fundamentally
8
23
different and this may lead to unintended behavior.
9
-
* Option `--R.BackEnd` specifies an RFFI backend. `--R.BackEnd=native`, the default, activates the JNI based backend, while `--R.BackEnd=llvm` activates the LLVM backend loading the LLVM bitcode bundled with package libraries. Note: All ``--R.BackEnd*` options are passed to R subprocesses.
10
-
* Option `--R.BackEndNative` enumerates packages whose native code will be executed by the native backend (JNI based)
11
-
* Option `--R.BackEndLLVM` enumerates packages whose native code will be executed by the LLVM backend
12
-
* Option `--R.DebugLLVMLibs` activates debugging of native code using the bundled LLVM bitcode
13
-
* Builtin `fastr.useDebugMakevars(use)` activates/deactivates a special `etc/Makevars.site` for debugging native code
14
-
* Builtin `fastr.setToolchain(name)` (`name` can be `llvm` or `native`) sets the compiler toolchain used for package building
0 commit comments