Przejdź do głównej zawartości

Kod R

R wykonuje się za pośrednictwem WebR, czyli R skompilowanego do WebAssembly. To język do zastosowania wtedy, gdy interesująca weryfikacja jest statystyczna, a nie strukturalna: rozkład czasów odpowiedzi, odsetek błędów, średnie kroczące.

SymbolRola
inputWartość odebrana na porcie wejściowym
varsZmienne uruchomienia
cat(...), print(...)Zapisują w dzienniku wykonania
Ostatnie wyrażenieJego wartość trafia na port result

Wartości skalarne są rozpakowywane; lista nazwana wychodzi jako obiekt JSON.

temps <- unlist(input$temps_ms)
moyenne <- mean(temps)
p95 <- quantile(temps, 0.95)
cat(sprintf("moyenne %.1f ms, p95 %.1f ms\n", moyenne, p95))
list(moyenne = moyenne, p95 = unname(p95), n = length(temps))

Wyjście warto podłączyć do bloku Assert z operatorem lt, aby wykonanie kończyło się niepowodzeniem, gdy p95 przekroczy przyjęty budżet.

Pole packages przyjmuje pakiety CRAN, udostępniane z repozytorium WebAssembly projektu WebR.

Silnik R jest współdzielonym singletonem, a jego uruchomienia są kolejkowane. Długi skrypt R opóźnia więc następne w obrębie tego samego wykonania — warto utrzymywać je krótkie albo odpowiednio zwiększyć timeout.