Hi Amirouche, Some comments to complement Kei’s.
Kei Kebreau <[email protected]> skribis: > Amirouche Boubekki <[email protected]> writes: > >> Warning: scheme-bytestructures works on various implementation of Scheme but >> this patch adds >> it only for guile-2.0. >> >> This is a pure scheme package there is no autotools that's why I use the >> trivial-build-system. >> >> This doesn't run the test suite, yet. >> >> From fb2eb7ffd88ec4fba09411195a54b59d67d9c137 Mon Sep 17 00:00:00 2001 >> From: Amirouche <[email protected]> >> Date: Sun, 9 Oct 2016 12:31:20 +0200 >> Subject: [PATCH] gnu: Add scheme-bytestructures >> >> * gnu/packages/guile.scm (scheme-bytestructures): New variable. >> >> diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm >> index 0890f19..383990e 100644 >> --- a/gnu/packages/guile.scm >> +++ b/gnu/packages/guile.scm >> @@ -1265,4 +1265,105 @@ is no support for parsing block and inline level >> HTML.") >> (define-public guile2.2-commonmark >> (package-for-guile-2.2 guile-commonmark)) >> >> +(define-public scheme-bytestructures >> + (package >> + (name "scheme-bytestructures") I would suggest calling it “guile-scheme-bytestructures” (or “guile-bytestructures”?) to distinguish this package from the same one built for another implementation. >> + (scm-files (string-split >> "bytestructures/guile/explicit-endianness.scm >> +bytestructures/guile/numeric-metadata.scm >> +bytestructures/guile/ffi.scm >> +bytestructures/guile/vector.scm >> +bytestructures/guile/union.scm >> +bytestructures/guile/numeric-all.scm >> +bytestructures/guile/utils.scm >> +bytestructures/guile/pointer.scm >> +bytestructures/guile/base.scm >> +bytestructures/guile/numeric.scm >> +bytestructures/guile/struct.scm >> +bytestructures/guile/bitfields.scm >> +bytestructures/r6/bytevectors.scm >> +bytestructures/body/base.syntactic.scm >> +bytestructures/body/explicit-endianness.scm >> +bytestructures/body/vector.scm >> +bytestructures/body/union.scm >> +bytestructures/body/utils.scm >> +bytestructures/body/base.scm >> +bytestructures/body/numeric.scm >> +bytestructures/body/struct.scm >> +bytestructures/body/bitfields.scm >> +bytestructures/guile.scm" Please let’s not list all the files. :-) Could it instead use something like (find-files "bytestructures" "\\.scm$")? >> + ;; Compile .scm files and install. >> + (chdir source) >> + (setenv "GUILE_AUTO_COMPILE" "0") >> + (for-each (lambda (file) >> + (let* ((dest-file (string-append module-dir "/" >> + file)) >> + (go-file (string-append module-dir "/" >> + (substring file 0 >> + (string-rindex >> file #\.)) >> + ".go"))) >> + ;; Install source module. >> + (copy-file file dest-file) >> + ;; Install compiled module. >> + (unless (zero? (system* guild "compile" >> + "-L" source >> + "-o" go-file >> + file)) >> + (error (format #f "Failed to compile ~s to ~s!" >> + file go-file))))) >> + scm-files) At some point we should factorize this in a new (guix build guile) module or something. Any takers? :-) >> + (license gpl3))) Probably ‘gpl3+’; could you check? > I'm getting messages from "./pre-inst-env guix build --check --rounds=2 > scheme-bytestructures" that the package derivation may not be > deterministic. However, other packages in guile.scm seem to have the > same issue, so perhaps someone more experienced with this file can > determine whether this is a cause for concern. Yeah, this is due to a Guile issue: <http://bugs.gnu.org/20272>. Thanks Ludo’.
