Requirements:
- Scraping: curl, ack, python
- Visualisation: R, tidyverse packages, scales
echo "Gross;Net" > data.csv;
python -c 'RANGE=(20000, 200000); STEPS=40; [print(int(RANGE[0] + i*(RANGE[1] - RANGE[0])/STEPS)) for i in range(1, STEPS)]' | \
Requirements:
echo "Gross;Net" > data.csv;
python -c 'RANGE=(20000, 200000); STEPS=40; [print(int(RANGE[0] + i*(RANGE[1] - RANGE[0])/STEPS)) for i in range(1, STEPS)]' | \
native-libs
folder at the root of your projectSystem.setProperty("sqlite4java.library.path", "native-libs")
This is a simple script to help me see the bytecode when plaing with Scala 3.
All it does is parallelises the calls to javap
command that should available if you have JDK installed.
Just Ammonite - https://ammonite.io/
It's excellent.
Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
---|---|---|---|---|
./day1-0.4.0 ../inputs/day1 |
688.7 ± 10.2 | 672.6 | 735.2 | 1.00 |
./day1-0.4.1 ../inputs/day1 |
965.6 ± 11.8 | 946.5 | 1035.4 | 1.40 ± 0.03 |
Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
:--- | ---: | ---: | ---: | ---: |
./day2-0.4.0 ../inputs/day2 |
14.0 ± 0.7 | 13.3 | 19.7 | 1.00 |
./day2-0.4.1 ../inputs/day2 |
15.4 ± 0.3 | 14.7 | 16.8 | 1.10 ± 0.06 |
Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
:--- | ---: | ---: | ---: | ---: |
package cJSON_test | |
import scala.scalanative.unsafe.* | |
import scala.scalanative.unsigned.* | |
import scalanative.libc.* | |
object predef: | |
abstract class CEnum[T](using eq: T =:= Int): | |
given Tag[T] = Tag.Int.asInstanceOf[Tag[T]] | |
extension (t: T) def int: CInt = eq.apply(t) |
package lib_nuklear | |
import scala.scalanative.unsafe.* | |
import scala.scalanative.unsigned.* | |
import scalanative.libc.* | |
object predef: | |
abstract class CEnum[T](using eq: T =:= Int): | |
given Tag[T] = Tag.Int.asInstanceOf[Tag[T]] | |
extension (t: T) def int: CInt = eq.apply(t) |
package libvulkan | |
import scala.scalanative.unsafe.* | |
import scala.scalanative.unsigned.* | |
import scalanative.libc.* | |
object predef: | |
abstract class CEnum[T](using eq: T =:= Int): | |
given Tag[T] = Tag.Int.asInstanceOf[Tag[T]] |
#include <string.h> | |
void __sn_wrap_libsdl_SDL_GameControllerGetBindForAxis(SDL_GameController * gamecontroller, SDL_GameControllerAxis axis, SDL_GameControllerButtonBind *____return) { | |
SDL_GameControllerButtonBind ____ret = SDL_GameControllerGetBindForAxis(gamecontroller, axis); | |
memcpy(____return, &____ret, sizeof(SDL_GameControllerButtonBind)); | |
} | |
void __sn_wrap_libsdl_SDL_GameControllerGetBindForButton(SDL_GameController * gamecontroller, SDL_GameControllerButton button, SDL_GameControllerButtonBind *____return) { | |
SDL_GameControllerButtonBind ____ret = SDL_GameControllerGetBindForButton(gamecontroller, button); |
This script does the following:
E.g. if you have a file like this (from scala/scala3#15160):
example.sc
libraryDependencies ++= Seq( | |
"org.xerial" % "sqlite-jdbc" % "3.36.0.3", | |
"org.tpolecat" %% "doobie-core" % "1.0.0-RC2", | |
"org.tpolecat" %% "doobie-hikari" % "1.0.0-RC2", // HikariCP transactor. | |
"org.tpolecat" %% "doobie-specs2" % "1.0.0-RC2", // Specs2 support for typechecking statements. | |
"org.tpolecat" %% "doobie-scalatest" % "1.0.0-RC2", // ScalaTest support for typechecking statements. | |
) |