Add microscheme derivation
(A Scheme subset for Atmel microcontrollers.) Use of the actual git HEAD because the actual tarball compiles but segfault at runtime. Upload the BLINK.ms sample on arduino board (/dev/ttyACM0): ```sh $ sudo ./result/bin/microscheme -m UNO -d /dev/ttyACM0 -auc ~/repo/perso/microscheme/examples/BLINK.ms Microscheme 0.8, (C) Ryan Suchocki >> Treeshaker: After 4 rounds: 84 globals purged! 22 bytes will be reserved. >> 18 lines compiled OK >> Assembling... >> Uploading... avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f avrdude: reading input file "/home/tony/repo/perso/microscheme/examples/BLINK.hex" avrdude: writing flash (2080 bytes): Writing | ################################################## | 100% 0.35s avrdude: 2080 bytes of flash written avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. >> Cleaning Up... >> Finished. ```
This commit is contained in:
parent
9b81fa284f
commit
172d78923b
@ -17,6 +17,7 @@
|
|||||||
AndersonTorres = "Anderson Torres <torres.anderson.85@gmail.com>";
|
AndersonTorres = "Anderson Torres <torres.anderson.85@gmail.com>";
|
||||||
andres = "Andres Loeh <ksnixos@andres-loeh.de>";
|
andres = "Andres Loeh <ksnixos@andres-loeh.de>";
|
||||||
antono = "Antono Vasiljev <self@antono.info>";
|
antono = "Antono Vasiljev <self@antono.info>";
|
||||||
|
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
|
||||||
aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
|
aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
|
||||||
arobyn = "Alexei Robyn <shados@shados.net>";
|
arobyn = "Alexei Robyn <shados@shados.net>";
|
||||||
asppsa = "Alastair Pharo <asppsa@gmail.com>";
|
asppsa = "Alastair Pharo <asppsa@gmail.com>";
|
||||||
|
41
pkgs/development/compilers/microscheme/default.nix
Normal file
41
pkgs/development/compilers/microscheme/default.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ stdenv, fetchgit, vim, avrdude, avrgcclibc, makeWrapper }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "microscheme-${version}";
|
||||||
|
version = "2015-02-04";
|
||||||
|
|
||||||
|
# externalize url/rev/sha256 to permit easier override
|
||||||
|
rev = "2f14781034a67adc081a22728fbf47a632f4484e";
|
||||||
|
sha256 = "15bdlmchzbhxj262r2fj78wm4c4hfrap4kyzv8n5b624svszr0zd";
|
||||||
|
url = https://github.com/ryansuchocki/microscheme.git;
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
inherit rev;
|
||||||
|
inherit sha256;
|
||||||
|
inherit url;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper vim ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin && make install PREFIX=$out
|
||||||
|
|
||||||
|
mkdir -p $out/share/microscheme/
|
||||||
|
cp -r examples/ $out/share/microscheme
|
||||||
|
|
||||||
|
wrapProgram $out/bin/microscheme \
|
||||||
|
--prefix PATH : "${avrdude}/bin:${avrgcclibc}/bin"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://microscheme.org;
|
||||||
|
description = "A Scheme subset for Atmel microcontrollers";
|
||||||
|
longDescription = ''
|
||||||
|
Microscheme is a Scheme subset/variant designed for Atmel
|
||||||
|
microcontrollers, especially as found on Arduino boards.
|
||||||
|
'';
|
||||||
|
license = licenses.mit;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ ardumont ];
|
||||||
|
};
|
||||||
|
}
|
@ -3720,6 +3720,8 @@ let
|
|||||||
|
|
||||||
mercury = callPackage ../development/compilers/mercury { };
|
mercury = callPackage ../development/compilers/mercury { };
|
||||||
|
|
||||||
|
microscheme = callPackage ../development/compilers/microscheme { };
|
||||||
|
|
||||||
mitscheme = callPackage ../development/compilers/mit-scheme { };
|
mitscheme = callPackage ../development/compilers/mit-scheme { };
|
||||||
|
|
||||||
mlton = callPackage ../development/compilers/mlton { };
|
mlton = callPackage ../development/compilers/mlton { };
|
||||||
|
Loading…
Reference in New Issue
Block a user