mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
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.
```
(cherry picked from commit 172d78923b
)
This commit is contained in:
parent
79df9d1dd4
commit
8840240db3
@ -17,6 +17,7 @@
|
||||
AndersonTorres = "Anderson Torres <torres.anderson.85@gmail.com>";
|
||||
andres = "Andres Loeh <ksnixos@andres-loeh.de>";
|
||||
antono = "Antono Vasiljev <self@antono.info>";
|
||||
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
|
||||
aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
|
||||
arobyn = "Alexei Robyn <shados@shados.net>";
|
||||
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 ];
|
||||
};
|
||||
}
|
@ -3527,6 +3527,8 @@ let
|
||||
|
||||
mercury = callPackage ../development/compilers/mercury { };
|
||||
|
||||
microscheme = callPackage ../development/compilers/microscheme { };
|
||||
|
||||
mitscheme = callPackage ../development/compilers/mit-scheme { };
|
||||
|
||||
mlton = callPackage ../development/compilers/mlton { };
|
||||
|
Loading…
Reference in New Issue
Block a user