Skip to content

Compiler of Lisp-like statically typed language targeting DalvikVM

Notifications You must be signed in to change notification settings

niazarak/ride-android

Repository files navigation

ride-android

Описание

  • Для генерации dex используется библиотека DexMaker. Ограничение API - генерировать локальные переменные (=регистры) до любого кода.
  • Типы: целые числа, булевы значения, лямбды (пока только 0, 1 и 2-арные и НЕ замыкания)
  • Система типов Хиндли-Милнера (пока без Let и Letrec)

Сборка

  • Склонировать
https://github.com/niazarak/ride-android.git
cd ride-android
  • Установить gradle, если не установлен (он скачает зависимости)

  • Собрать

./gradlew install

Запуск

  • Если собирали по инструкциям выше, то:
build/install/ride-android/bin/ride-android example.el
  • Либо скачать готовый jar и запустить
java -jar ride-android-fat-1.0.jar example.el

Если ничего не взорвалось, то появится файл classes.dex

Запуск бинаря на телефоне

  • Скачать и распаковать девтулзы. Нам понадобится adb
  • Подключить телефон по USB
  • Загрузить скомпилированный бинарь на телефон
adb push classes.dex /data/local/tmp/ride
  • Запустить бинарь на телефоне
adb shell
> cd /data/local/tmp/ride/
> dalvikvm -cp classes.dex Main

Или в одну строку

adb shell 'dalvikvm -cp /data/local/tmp/ride/classes.dex Main'

About

Compiler of Lisp-like statically typed language targeting DalvikVM

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages