From 7d1041820c755d1e9d43d5a930cd79589ef89630 Mon Sep 17 00:00:00 2001 From: Jean-Pierre De Jesus DIAZ Date: Tue, 28 Nov 2023 12:34:48 +0100 Subject: 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 --- gnu/packages/avr-xyz.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'gnu/packages/avr-xyz.scm') 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 +;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2022 Artyom V. Poptsov ;;; Copyright © 2023 Maxim Cournoyer ;;; @@ -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))) -- cgit v1.2.3