summary refs log tree commit diff
path: root/gnu/packages/avr-xyz.scm
diff options
context:
space:
mode:
authorJean-Pierre De Jesus DIAZ <jean@foundationdevices.com>2023-11-28 12:34:48 +0100
committerEfraim Flashner <efraim@flashner.co.il>2023-12-11 13:24:09 +0200
commit7d1041820c755d1e9d43d5a930cd79589ef89630 (patch)
treed63f3b3b848c7009583ccfb2a25df298b43dcdf6 /gnu/packages/avr-xyz.scm
parent520e3d267ecc3964af301ab9341462e905f234c6 (diff)
downloadguix-7d1041820c755d1e9d43d5a930cd79589ef89630.tar.gz
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.scm44
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)))