diff options
author | Jean-Pierre De Jesus DIAZ <jean@foundationdevices.com> | 2023-11-28 12:34:48 +0100 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-12-11 13:24:09 +0200 |
commit | 7d1041820c755d1e9d43d5a930cd79589ef89630 (patch) | |
tree | d63f3b3b848c7009583ccfb2a25df298b43dcdf6 /gnu/packages/avr-xyz.scm | |
parent | 520e3d267ecc3964af301ab9341462e905f234c6 (diff) |
gnu: microscheme: Move to avr-xyz.
* gnu/packages/avr.scm (microscheme): Move to ...
* gnu/packages/avr-xyz.scm (microscheme): ... here.
Change-Id: I1272bfc98b583ab0ab36fcba5a8e19ae018b0b80
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu/packages/avr-xyz.scm')
-rw-r--r-- | gnu/packages/avr-xyz.scm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm index e0db2e3a0c..26cf5e7a83 100644 --- a/gnu/packages/avr-xyz.scm +++ b/gnu/packages/avr-xyz.scm @@ -1,4 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; @@ -29,13 +32,17 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages avr) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) #:use-module (gnu packages gl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages llvm) #:use-module (gnu packages ncurses) #:use-module (gnu packages version-control) + #:use-module (gnu packages vim) #:use-module (gnu packages ruby)) (define-public simavr @@ -178,3 +185,40 @@ package contains the user-submitted projects and bootloaders for use with compatible microcontroller models, as well as the demos and the documentation.") (license license:expat))) ;see LUFA/License.txt + +(define-public microscheme + (package + (name "microscheme") + (version "0.9.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ryansuchocki/microscheme") + (commit (string-append "v" version)))) + (sha256 + (base32 "1bflwirpcd58bngbs6hgjfwxl894ni2gpdd4pj10pm2mjhyj5dgw")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ; fails to build otherwise + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure)) + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + (native-inputs + (list clang cppcheck unzip xxd)) + (home-page "https://github.com/ryansuchocki/microscheme/") + (synopsis "Scheme subset for Atmel microcontrollers") + (description + "Microscheme, or @code{(ms)} for short, is a functional programming +language for the Arduino, and for Atmel 8-bit AVR microcontrollers in general. +Microscheme is a subset of Scheme, in the sense that every valid @code{(ms)} +program is also a valid Scheme program (with the exception of Arduino +hardware-specific primitives). The @code{(ms)} compiler performs function +inlining, and features an aggressive tree-shaker, eliminating unused top-level +definitions. Microscheme has a robust @dfn{Foreign Function Interface} (FFI) +meaning that C code may be invoked directly from (ms) programs.") + (license license:expat))) |