Closed jgarte closed 8 months ago
Hi, the order should be exactly that as found in sc’s all.lsp
with asd you’ll probably run into the problem of sc’s version of common music, which comes with its own asd file, and which is incorporated into sc. THat’s the one essential pre-existing package, as I’ve mentioned elsewhere. CLM and CMN are not essential.
Best, Michael
On 10. Apr 2022, at 23:43, jgart @.***> wrote:
I started packaging slippery-chicken in a branch of a Guix channel called Guix 'R Us.
For a Guix package for slippery-chicken to be possible we will need to resolve a few things that are dependent on #44
One is, we need a .asd file for slippery-chicken.
• In order to write a .asd file for slippery-chicken we need to know the exact order in which the slippery chicken files are loaded.
• Then we need to reflect that in the ASD file, with the :serial t option.
Here's a starter ASD file assuming that the system will be called sc:
(asdf:defsystem #:sc
:description "algorithmic composition software in common lisp and clos"
:author "Michael Edwards"
:license
"GPL-3":version "1.0.12"
:serial t
:pathname "src"
:depends-on (
:cmn
:cm
) :components ((:file "activity-levels-env.lsp"
"activity-levels.lsp"
"afu.lsp"
"akoustik-piano-spectra.lsp"
"all.lsp"
"assoc-list.lsp"
"autoc.lsp"
"bar-holder.lsp"
"change-data.lsp"
"change-map.lsp"
"chord.lsp" "circular-sclist.lsp" "clm-piano-spectra.lsp" "clm.lsp" "cm-2.6.0" "cm-cm.lsp" "cm-load.lsp" "cm.lsp" "cmn-glyphs.lsp" "cmn.lsp" "complete-set.lsp" "control-wave-ins.lsp" "control-wave.lsp" "cycle-repeats.lsp" "ensemble.lsp" "event.lsp" "get-spectrum.lsp" "globals.lsp" "import-audio.lsp" "instrument-change-map.lsp" "instrument-palette.lsp" "instrument.lsp" "instruments.lsp" "intervals-mapper.lsp" "l-for-lookup.lsp" "lilypond.lsp" "lilypond.ly" "linked-named-object.lsp" "music-xml.lsp" "named-object.lsp" "osc-sc-bsd.lsp" "osc-sc.lsp" "osc.lsp" "package.lsp" "palette.lsp" "permutations.lsp" "piece.lsp" "pitch-seq-palette.lsp" "pitch-seq.lsp" "pitch.lsp" "player-section.lsp" "player.lsp" "popcorn.lsp" "reaper-header.txt" "reaper-item.txt" "reaper-track.txt" "reaper.lsp" "recurring-event.lsp" "recursive-assoc-list.lsp" "rhythm.lsp" "rthm-chain-slow.lsp" "rthm-chain.lsp" "rthm-seq-bar.lsp" "rthm-seq-map.lsp" "rthm-seq-palette.lsp" "rthm-seq.lsp" "samp5.lsp" "sc-ascii-logo.txt" "sc-map.lsp" "sc-set.lsp" "sclist.lsp" "section.lsp" "sequenz.lsp" "set-map.lsp" "set-palette.lsp" "simple-change-map.lsp" "sine.lsp" "slippery-chicken-edit.fasl" "slippery-chicken-edit.lsp" "slippery-chicken.lsp" "sndfile-ext.lsp" "sndfile-palette.lsp" "sndfile.lsp" "sndfilenet.lsp" "spectra.lsp" "tempo-map.lsp" "tempo.lsp" "time-sig.lsp" "tl-set.lsp" "utilities.lsp" "violin-ensemble-spectra.lsp" "wolfram.lsp")) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.
THat’s the one essential pre-existing package, as I’ve mentioned elsewhere. CLM and CMN are not essential.
@mdedwards
Oh, sorry, I see you answered my question regarding cm
here. Thank you!
My strategy now will be to package cm
(common music
) for Guix and then use what Guix calls a snippet
to delete the vendored cm
library after cloning the repository from GitHub and install slippery-chicken
with the Guix-managed cm
package.
The snippet would look something like this in the slippery-chicken Guix package:
(modules '((guix build utils))) ; Import delete-file-recursively function.
(snippet
'(begin
(delete-file-recursively "src/cm-2.6.0") ; Removes a vendored Common Music.
(delete-file-recursively "src/app-skeleton"))) ; Removes OS X stuff.
This snippet modifies the source code before it is copied, built, and installed to the users's machine.
Hello there, we've finally made slippery chicken asdf-friendly. If you haven't completely given up you might want to integrate into Guix now. Best, Michael
@mdedwards Thanks for the update. I'm planning to work on the Guix package still. I'll keep you posted on when I try again.
I started packaging slippery-chicken in a branch of a Guix channel called Guix 'R Us:
https://git.sr.ht/~whereiseveryone/guixrus/tree/slippery-chicken/item/guixrus/packages/slippery-chicken.scm#L36
A Guix package is scheme code written in GNU Guile.
In order for a slippery-chicken Guix package to be practical we will need to resolve a few things that are dependent on #44
One is, we need an ASD file for slippery-chicken.
It looks like all.lsp might have the correct load order.
The ASD example below uses the order in
all.lsp
.:serial t
option which will load those files in the correct sequence.From the ASDF manual:
Here's a starter ASD file assuming that the system will be called
sc
:Excuse the spacing above. GitHub's formatting is a little buggy.