Packaging R for WebAssembly
r-base
- [x] Figuring out configuration and cross-compilation
- https://github.com/IsabelParedes/emscripten-forge-recipes/tree/r-base-flang
- lang: R, C, Fortran
- [x] Package
r-basefor emscripten-forge- #1287
- Requires:
- [x] Patched
flang-newavailable on conda-forge/label/llvm_dev (for linux)- https://github.com/conda-forge/flang-feedstock/pull/69
- [x] A recipe to build the Fortran Runtime on emscripten-forge (for wasm)
- #1285
- [x]
libblas- lang: Fortran
- Builds with patched
flang-new - #1284
- [x]
liblapack- lang: Fortran
- Builds with patched
flang-new - #1284
- [x] Patched
Other dependencies
- [x]
xz#1055 - [x] ~~
libcurl~~ (NOT NEEDED / wouldn't work!) - [x]
cairo#1109- deps:
glib,pixman
- deps:
- [x]
pixman#1058 - [x]
glib#1051 - [ ]
pangofancy text rendering (optional) #1349- deps:
cairo,harfbuzz
- deps:
- [x]
harfbuzz#1067- [x] deps:
graphite2#1057
- [x] deps:
- [x]
icu#1043 - [x]
libiconv - [x]
zlib - [x]
libtiff - [x]
libpng - [x]
bzip2 - [x]
pcre2#1041 - [x]
libjpeg-turbojpeg#1052 - [x]
tk - [x]
bwidget- deps:
tk
- deps:
- [x]
tktable- deps:
tk
- deps:
- [x]
readline- [x] dep:
ncurses#882
- [x] dep:
R packages
All of the following packages depend on r-base and are dependencies for xeus-r.
- [x]
r-rlang#1303 - [x]
r-evaluatenoarch - [x]
r-jsonlite#1307 - [x]
r-glue#1306 - [ ]
r-cliOnly <v3.0.1 noarch - [x]
r-reprnoarch- dependencies:
r-base- [x]
r-base64enc#1314 - [ ]
r-htmltools#1345- lang: R, C
- dependencies:
r-baser-base64encr-rlang- [x]
r-digest#1308 - [x]
r-ellipsis#1343- lang: R, C
- dep:
r-rlang
- [x]
r-fastmap#1309
- [x]
r-pillarnoarch- dependencies:
r-baser-clir-ellipsisr-rlang- [x] (optional)
r-crayonnoarch- Superseded by
r-cli - lang: R
- deps:
r-base
- Superseded by
- [x]
r-fansi#1311 - [x]
r-lifecyclenoarch - [ ]
r-vctrs#1342- lang: R, C
- dependencies:
r-baser-rlangr-clir-gluer-lifecycle
- [x]
r-utf8#1313
- dependencies:
- dependencies:
- [x]
r-IRdisplay- noarch available
- lang: R
- dependencies:
r-baser-repr
- [x]
r-ggplot2(for testing)- noarch available
- lang: R
- dependencies:
r-baser-rlangr-clir-gluer-lifecycler-vctrs- [x]
r-mass#1315 - [x]
r-gtablenoarch - [x]
r-isoband#1316 - [ ]
r-mgcv#1340- [ ]
nlme#1338 - [ ]
matrix#1339 - [x]
lattice#1317
- [ ]
- [x]
r-scalesnoarch- [x]
r-farver#1323
- [x]
- [ ]
r-tibble#1347 - [x]
r-magrittr#1324 - [x]
r-withrnoarch
r-coursekata
- [ ] r-coursekata
- [ ] r-purrr >=0.3.4 #1348
- [x] r-metrics (noarch)
- [x] r-dslabs (noarch)
- [x] r-ggformula (noarch)
- [x] r-lsr (noarch)
- [x] r-mosaic (noarch)
- [x] r-pak (noarch)
- [x] r-palmerpenguins (noarch)
- [x] r-supernova (noarch)
- [x] r-viridislite (noarch)
maybe we can use clapack instead of liblapack https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/clapack
maybe we can use clapack instead of liblapack https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/clapack
I like this idea. This could simplify a lot of things. Worth trying it out!
https://github.com/conda-forge/r-coursekata-feedstock
As a side note, I tried building r-base with clapack and openblas which are already available on emscripten-forge. However, r-base still has an internal appl lib which requires having a Fortran to WebAssembly toolchain.
@IsabelParedes @SylvainCorlay I got a new requirement for this project which is the neuralnet package. It looks like it is noarch, but has a dependency on MASS (already packaged on this issue) and Deriv (not yet packaged). I checked and Deriv only depends on r-base, so I think we are good, right?
- r-neuralnet meta: https://github.com/conda-forge/r-neuralnet-feedstock/blob/main/recipe/meta.yaml
- r-deriv meta: https://github.com/conda-forge/r-deriv-feedstock/blob/main/recipe/meta.yaml
@IsabelParedes @SylvainCorlay I got a new requirement for this project which is the neuralnet package. It looks like it is noarch, but has a dependency on MASS (already packaged on this issue) and Deriv (not yet packaged). I checked and Deriv only depends on r-base, so I think we are good, right?
r-neuralnet meta: https://github.com/conda-forge/r-neuralnet-feedstock/blob/main/recipe/meta.yaml
r-deriv meta: https://github.com/conda-forge/r-deriv-feedstock/blob/main/recipe/meta.yaml
Hi @adamblake! Correct, these two packages do not need compilation so they're good to go.