recipes icon indicating copy to clipboard operation
recipes copied to clipboard

Packaging R for WebAssembly

Open IsabelParedes opened this issue 1 year ago • 4 comments

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-base for emscripten-forge
    • #1287
    • Requires:
      • [x] Patched flang-new available 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
Other dependencies
  • [x] xz #1055
  • [x] ~~libcurl~~ (NOT NEEDED / wouldn't work!)
  • [x] cairo #1109
    • deps: glib, pixman
  • [x] pixman #1058
  • [x] glib #1051
  • [ ] pango fancy text rendering (optional) #1349
    • deps: cairo, harfbuzz
  • [x] harfbuzz #1067
    • [x] deps: graphite2 #1057
  • [x] icu #1043
  • [x] libiconv
  • [x] zlib
  • [x] libtiff
  • [x] libpng
  • [x] bzip2
  • [x] pcre2 #1041
  • [x] libjpeg-turbo jpeg #1052
  • [x] tk
  • [x] bwidget
    • deps: tk
  • [x] tktable
    • deps: tk
  • [x] readline
    • [x] dep: ncurses #882

R packages

All of the following packages depend on r-base and are dependencies for xeus-r.

  • [x] r-rlang #1303
  • [x] r-evaluate noarch
  • [x] r-jsonlite #1307
  • [x] r-glue #1306
  • [ ] r-cli Only <v3.0.1 noarch
  • [x] r-repr noarch
    • dependencies:
      • r-base
      • [x] r-base64enc #1314
      • [ ] r-htmltools #1345
        • lang: R, C
        • dependencies:
          • r-base
          • r-base64enc
          • r-rlang
          • [x] r-digest #1308
          • [x] r-ellipsis #1343
            • lang: R, C
            • dep: r-rlang
          • [x] r-fastmap #1309
      • [x] r-pillar noarch
        • dependencies:
          • r-base
          • r-cli
          • r-ellipsis
          • r-rlang
          • [x] (optional) r-crayon noarch
            • Superseded by r-cli
            • lang: R
            • deps: r-base
          • [x] r-fansi #1311
          • [x] r-lifecycle noarch
          • [ ] r-vctrs #1342
            • lang: R, C
            • dependencies:
              • r-base
              • r-rlang
              • r-cli
              • r-glue
              • r-lifecycle
          • [x] r-utf8 #1313
  • [x] r-IRdisplay
    • noarch available
    • lang: R
    • dependencies:
      • r-base
      • r-repr
  • [x] r-ggplot2 (for testing)
    • noarch available
    • lang: R
    • dependencies:
      • r-base
      • r-rlang
      • r-cli
      • r-glue
      • r-lifecycle
      • r-vctrs
      • [x] r-mass #1315
      • [x] r-gtable noarch
      • [x] r-isoband #1316
      • [ ] r-mgcv #1340
        • [ ] nlme #1338
        • [ ] matrix #1339
        • [x] lattice #1317
      • [x] r-scales noarch
        • [x] r-farver #1323
      • [ ] r-tibble #1347
      • [x] r-magrittr #1324
      • [x] r-withr noarch

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)

IsabelParedes avatar Apr 23 '24 16:04 IsabelParedes

maybe we can use clapack instead of liblapack https://github.com/emscripten-forge/recipes/tree/main/recipes/recipes_emscripten/clapack

DerThorsten avatar Apr 24 '24 05:04 DerThorsten

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!

IsabelParedes avatar Apr 24 '24 16:04 IsabelParedes

https://github.com/conda-forge/r-coursekata-feedstock

SylvainCorlay avatar Jun 25 '24 15:06 SylvainCorlay

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 avatar Jul 30 '24 15:07 IsabelParedes

@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

adamblake avatar Oct 18 '24 17:10 adamblake

@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.

IsabelParedes avatar Oct 21 '24 08:10 IsabelParedes