LilyPond-Ruby 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1109) hide show
  1. checksums.yaml +4 -4
  2. data/etc/fonts/conf.d/10-hinting-slight.conf +15 -0
  3. data/etc/fonts/conf.d/10-scale-bitmap-fonts.conf +83 -0
  4. data/etc/fonts/conf.d/11-lcdfilter-default.conf +17 -0
  5. data/etc/fonts/conf.d/20-unhint-small-vera.conf +49 -0
  6. data/etc/fonts/conf.d/30-metric-aliases.conf +637 -0
  7. data/etc/fonts/conf.d/40-nonlatin.conf +332 -0
  8. data/etc/fonts/conf.d/45-generic.conf +136 -0
  9. data/etc/fonts/conf.d/45-latin.conf +301 -0
  10. data/etc/fonts/conf.d/48-spacing.conf +16 -0
  11. data/etc/fonts/conf.d/49-sansserif.conf +22 -0
  12. data/etc/fonts/conf.d/50-user.conf +16 -0
  13. data/etc/fonts/conf.d/51-local.conf +7 -0
  14. data/etc/fonts/conf.d/60-generic.conf +64 -0
  15. data/etc/fonts/conf.d/60-latin.conf +88 -0
  16. data/etc/fonts/conf.d/65-fonts-persian.conf +418 -0
  17. data/etc/fonts/conf.d/65-nonlatin.conf +228 -0
  18. data/etc/fonts/conf.d/69-unifont.conf +28 -0
  19. data/etc/fonts/conf.d/80-delicious.conf +19 -0
  20. data/etc/fonts/conf.d/90-synthetic.conf +64 -0
  21. data/etc/fonts/conf.d/README +23 -0
  22. data/etc/fonts/fonts.conf +101 -0
  23. data/etc/relocate/fontconfig.reloc +2 -0
  24. data/etc/relocate/guile.reloc +2 -0
  25. data/etc/relocate/libexec.reloc +1 -0
  26. data/lib/guile/2.2/ccache/ice-9/and-let-star.go +0 -0
  27. data/lib/guile/2.2/ccache/ice-9/arrays.go +0 -0
  28. data/lib/guile/2.2/ccache/ice-9/atomic.go +0 -0
  29. data/lib/guile/2.2/ccache/ice-9/binary-ports.go +0 -0
  30. data/lib/guile/2.2/ccache/ice-9/boot-9.go +0 -0
  31. data/lib/guile/2.2/ccache/ice-9/buffered-input.go +0 -0
  32. data/lib/guile/2.2/ccache/ice-9/calling.go +0 -0
  33. data/lib/guile/2.2/ccache/ice-9/channel.go +0 -0
  34. data/lib/guile/2.2/ccache/ice-9/command-line.go +0 -0
  35. data/lib/guile/2.2/ccache/ice-9/common-list.go +0 -0
  36. data/lib/guile/2.2/ccache/ice-9/control.go +0 -0
  37. data/lib/guile/2.2/ccache/ice-9/curried-definitions.go +0 -0
  38. data/lib/guile/2.2/ccache/ice-9/debug.go +0 -0
  39. data/lib/guile/2.2/ccache/ice-9/deprecated.go +0 -0
  40. data/lib/guile/2.2/ccache/ice-9/documentation.go +0 -0
  41. data/lib/guile/2.2/ccache/ice-9/eval-string.go +0 -0
  42. data/lib/guile/2.2/ccache/ice-9/eval.go +0 -0
  43. data/lib/guile/2.2/ccache/ice-9/expect.go +0 -0
  44. data/lib/guile/2.2/ccache/ice-9/fdes-finalizers.go +0 -0
  45. data/lib/guile/2.2/ccache/ice-9/format.go +0 -0
  46. data/lib/guile/2.2/ccache/ice-9/ftw.go +0 -0
  47. data/lib/guile/2.2/ccache/ice-9/futures.go +0 -0
  48. data/lib/guile/2.2/ccache/ice-9/gap-buffer.go +0 -0
  49. data/lib/guile/2.2/ccache/ice-9/getopt-long.go +0 -0
  50. data/lib/guile/2.2/ccache/ice-9/hash-table.go +0 -0
  51. data/lib/guile/2.2/ccache/ice-9/hcons.go +0 -0
  52. data/lib/guile/2.2/ccache/ice-9/history.go +0 -0
  53. data/lib/guile/2.2/ccache/ice-9/i18n.go +0 -0
  54. data/lib/guile/2.2/ccache/ice-9/iconv.go +0 -0
  55. data/lib/guile/2.2/ccache/ice-9/lineio.go +0 -0
  56. data/lib/guile/2.2/ccache/ice-9/list.go +0 -0
  57. data/lib/guile/2.2/ccache/ice-9/local-eval.go +0 -0
  58. data/lib/guile/2.2/ccache/ice-9/ls.go +0 -0
  59. data/lib/guile/2.2/ccache/ice-9/mapping.go +0 -0
  60. data/lib/guile/2.2/ccache/ice-9/match.go +0 -0
  61. data/lib/guile/2.2/ccache/ice-9/networking.go +0 -0
  62. data/lib/guile/2.2/ccache/ice-9/null.go +0 -0
  63. data/lib/guile/2.2/ccache/ice-9/occam-channel.go +0 -0
  64. data/lib/guile/2.2/ccache/ice-9/optargs.go +0 -0
  65. data/lib/guile/2.2/ccache/ice-9/peg/cache.go +0 -0
  66. data/lib/guile/2.2/ccache/ice-9/peg/codegen.go +0 -0
  67. data/lib/guile/2.2/ccache/ice-9/peg/simplify-tree.go +0 -0
  68. data/lib/guile/2.2/ccache/ice-9/peg/string-peg.go +0 -0
  69. data/lib/guile/2.2/ccache/ice-9/peg/using-parsers.go +0 -0
  70. data/lib/guile/2.2/ccache/ice-9/peg.go +0 -0
  71. data/lib/guile/2.2/ccache/ice-9/poe.go +0 -0
  72. data/lib/guile/2.2/ccache/ice-9/poll.go +0 -0
  73. data/lib/guile/2.2/ccache/ice-9/popen.go +0 -0
  74. data/lib/guile/2.2/ccache/ice-9/ports.go +0 -0
  75. data/lib/guile/2.2/ccache/ice-9/posix.go +0 -0
  76. data/lib/guile/2.2/ccache/ice-9/pretty-print.go +0 -0
  77. data/lib/guile/2.2/ccache/ice-9/psyntax-pp.go +0 -0
  78. data/lib/guile/2.2/ccache/ice-9/q.go +0 -0
  79. data/lib/guile/2.2/ccache/ice-9/r5rs.go +0 -0
  80. data/lib/guile/2.2/ccache/ice-9/rdelim.go +0 -0
  81. data/lib/guile/2.2/ccache/ice-9/receive.go +0 -0
  82. data/lib/guile/2.2/ccache/ice-9/regex.go +0 -0
  83. data/lib/guile/2.2/ccache/ice-9/runq.go +0 -0
  84. data/lib/guile/2.2/ccache/ice-9/rw.go +0 -0
  85. data/lib/guile/2.2/ccache/ice-9/safe-r5rs.go +0 -0
  86. data/lib/guile/2.2/ccache/ice-9/safe.go +0 -0
  87. data/lib/guile/2.2/ccache/ice-9/sandbox.go +0 -0
  88. data/lib/guile/2.2/ccache/ice-9/save-stack.go +0 -0
  89. data/lib/guile/2.2/ccache/ice-9/scm-style-repl.go +0 -0
  90. data/lib/guile/2.2/ccache/ice-9/serialize.go +0 -0
  91. data/lib/guile/2.2/ccache/ice-9/session.go +0 -0
  92. data/lib/guile/2.2/ccache/ice-9/slib.go +0 -0
  93. data/lib/guile/2.2/ccache/ice-9/stack-catch.go +0 -0
  94. data/lib/guile/2.2/ccache/ice-9/streams.go +0 -0
  95. data/lib/guile/2.2/ccache/ice-9/string-fun.go +0 -0
  96. data/lib/guile/2.2/ccache/ice-9/suspendable-ports.go +0 -0
  97. data/lib/guile/2.2/ccache/ice-9/syncase.go +0 -0
  98. data/lib/guile/2.2/ccache/ice-9/textual-ports.go +0 -0
  99. data/lib/guile/2.2/ccache/ice-9/threads.go +0 -0
  100. data/lib/guile/2.2/ccache/ice-9/time.go +0 -0
  101. data/lib/guile/2.2/ccache/ice-9/top-repl.go +0 -0
  102. data/lib/guile/2.2/ccache/ice-9/unicode.go +0 -0
  103. data/lib/guile/2.2/ccache/ice-9/vlist.go +0 -0
  104. data/lib/guile/2.2/ccache/ice-9/weak-vector.go +0 -0
  105. data/lib/guile/2.2/ccache/language/brainfuck/compile-scheme.go +0 -0
  106. data/lib/guile/2.2/ccache/language/brainfuck/compile-tree-il.go +0 -0
  107. data/lib/guile/2.2/ccache/language/brainfuck/parse.go +0 -0
  108. data/lib/guile/2.2/ccache/language/brainfuck/spec.go +0 -0
  109. data/lib/guile/2.2/ccache/language/bytecode/spec.go +0 -0
  110. data/lib/guile/2.2/ccache/language/bytecode.go +0 -0
  111. data/lib/guile/2.2/ccache/language/cps/closure-conversion.go +0 -0
  112. data/lib/guile/2.2/ccache/language/cps/compile-bytecode.go +0 -0
  113. data/lib/guile/2.2/ccache/language/cps/constructors.go +0 -0
  114. data/lib/guile/2.2/ccache/language/cps/contification.go +0 -0
  115. data/lib/guile/2.2/ccache/language/cps/cse.go +0 -0
  116. data/lib/guile/2.2/ccache/language/cps/dce.go +0 -0
  117. data/lib/guile/2.2/ccache/language/cps/effects-analysis.go +0 -0
  118. data/lib/guile/2.2/ccache/language/cps/elide-values.go +0 -0
  119. data/lib/guile/2.2/ccache/language/cps/handle-interrupts.go +0 -0
  120. data/lib/guile/2.2/ccache/language/cps/intmap.go +0 -0
  121. data/lib/guile/2.2/ccache/language/cps/intset.go +0 -0
  122. data/lib/guile/2.2/ccache/language/cps/licm.go +0 -0
  123. data/lib/guile/2.2/ccache/language/cps/optimize.go +0 -0
  124. data/lib/guile/2.2/ccache/language/cps/peel-loops.go +0 -0
  125. data/lib/guile/2.2/ccache/language/cps/primitives.go +0 -0
  126. data/lib/guile/2.2/ccache/language/cps/prune-bailouts.go +0 -0
  127. data/lib/guile/2.2/ccache/language/cps/prune-top-level-scopes.go +0 -0
  128. data/lib/guile/2.2/ccache/language/cps/reify-primitives.go +0 -0
  129. data/lib/guile/2.2/ccache/language/cps/renumber.go +0 -0
  130. data/lib/guile/2.2/ccache/language/cps/rotate-loops.go +0 -0
  131. data/lib/guile/2.2/ccache/language/cps/self-references.go +0 -0
  132. data/lib/guile/2.2/ccache/language/cps/simplify.go +0 -0
  133. data/lib/guile/2.2/ccache/language/cps/slot-allocation.go +0 -0
  134. data/lib/guile/2.2/ccache/language/cps/spec.go +0 -0
  135. data/lib/guile/2.2/ccache/language/cps/specialize-numbers.go +0 -0
  136. data/lib/guile/2.2/ccache/language/cps/specialize-primcalls.go +0 -0
  137. data/lib/guile/2.2/ccache/language/cps/split-rec.go +0 -0
  138. data/lib/guile/2.2/ccache/language/cps/type-checks.go +0 -0
  139. data/lib/guile/2.2/ccache/language/cps/type-fold.go +0 -0
  140. data/lib/guile/2.2/ccache/language/cps/types.go +0 -0
  141. data/lib/guile/2.2/ccache/language/cps/utils.go +0 -0
  142. data/lib/guile/2.2/ccache/language/cps/verify.go +0 -0
  143. data/lib/guile/2.2/ccache/language/cps/with-cps.go +0 -0
  144. data/lib/guile/2.2/ccache/language/cps.go +0 -0
  145. data/lib/guile/2.2/ccache/language/ecmascript/array.go +0 -0
  146. data/lib/guile/2.2/ccache/language/ecmascript/base.go +0 -0
  147. data/lib/guile/2.2/ccache/language/ecmascript/compile-tree-il.go +0 -0
  148. data/lib/guile/2.2/ccache/language/ecmascript/function.go +0 -0
  149. data/lib/guile/2.2/ccache/language/ecmascript/impl.go +0 -0
  150. data/lib/guile/2.2/ccache/language/ecmascript/parse.go +0 -0
  151. data/lib/guile/2.2/ccache/language/ecmascript/spec.go +0 -0
  152. data/lib/guile/2.2/ccache/language/ecmascript/tokenize.go +0 -0
  153. data/lib/guile/2.2/ccache/language/elisp/bindings.go +0 -0
  154. data/lib/guile/2.2/ccache/language/elisp/boot.go +0 -0
  155. data/lib/guile/2.2/ccache/language/elisp/compile-tree-il.go +0 -0
  156. data/lib/guile/2.2/ccache/language/elisp/falias.go +0 -0
  157. data/lib/guile/2.2/ccache/language/elisp/lexer.go +0 -0
  158. data/lib/guile/2.2/ccache/language/elisp/parser.go +0 -0
  159. data/lib/guile/2.2/ccache/language/elisp/runtime/function-slot.go +0 -0
  160. data/lib/guile/2.2/ccache/language/elisp/runtime/value-slot.go +0 -0
  161. data/lib/guile/2.2/ccache/language/elisp/runtime.go +0 -0
  162. data/lib/guile/2.2/ccache/language/elisp/spec.go +0 -0
  163. data/lib/guile/2.2/ccache/language/scheme/compile-tree-il.go +0 -0
  164. data/lib/guile/2.2/ccache/language/scheme/decompile-tree-il.go +0 -0
  165. data/lib/guile/2.2/ccache/language/scheme/spec.go +0 -0
  166. data/lib/guile/2.2/ccache/language/tree-il/analyze.go +0 -0
  167. data/lib/guile/2.2/ccache/language/tree-il/canonicalize.go +0 -0
  168. data/lib/guile/2.2/ccache/language/tree-il/compile-cps.go +0 -0
  169. data/lib/guile/2.2/ccache/language/tree-il/debug.go +0 -0
  170. data/lib/guile/2.2/ccache/language/tree-il/effects.go +0 -0
  171. data/lib/guile/2.2/ccache/language/tree-il/fix-letrec.go +0 -0
  172. data/lib/guile/2.2/ccache/language/tree-il/optimize.go +0 -0
  173. data/lib/guile/2.2/ccache/language/tree-il/peval.go +0 -0
  174. data/lib/guile/2.2/ccache/language/tree-il/primitives.go +0 -0
  175. data/lib/guile/2.2/ccache/language/tree-il/spec.go +0 -0
  176. data/lib/guile/2.2/ccache/language/tree-il.go +0 -0
  177. data/lib/guile/2.2/ccache/language/value/spec.go +0 -0
  178. data/lib/guile/2.2/ccache/oop/goops/accessors.go +0 -0
  179. data/lib/guile/2.2/ccache/oop/goops/active-slot.go +0 -0
  180. data/lib/guile/2.2/ccache/oop/goops/composite-slot.go +0 -0
  181. data/lib/guile/2.2/ccache/oop/goops/describe.go +0 -0
  182. data/lib/guile/2.2/ccache/oop/goops/internal.go +0 -0
  183. data/lib/guile/2.2/ccache/oop/goops/save.go +0 -0
  184. data/lib/guile/2.2/ccache/oop/goops/simple.go +0 -0
  185. data/lib/guile/2.2/ccache/oop/goops/stklos.go +0 -0
  186. data/lib/guile/2.2/ccache/oop/goops.go +0 -0
  187. data/lib/guile/2.2/ccache/rnrs/arithmetic/bitwise.go +0 -0
  188. data/lib/guile/2.2/ccache/rnrs/arithmetic/fixnums.go +0 -0
  189. data/lib/guile/2.2/ccache/rnrs/arithmetic/flonums.go +0 -0
  190. data/lib/guile/2.2/ccache/rnrs/base.go +0 -0
  191. data/lib/guile/2.2/ccache/rnrs/bytevectors.go +0 -0
  192. data/lib/guile/2.2/ccache/rnrs/conditions.go +0 -0
  193. data/lib/guile/2.2/ccache/rnrs/control.go +0 -0
  194. data/lib/guile/2.2/ccache/rnrs/enums.go +0 -0
  195. data/lib/guile/2.2/ccache/rnrs/eval.go +0 -0
  196. data/lib/guile/2.2/ccache/rnrs/exceptions.go +0 -0
  197. data/lib/guile/2.2/ccache/rnrs/files.go +0 -0
  198. data/lib/guile/2.2/ccache/rnrs/hashtables.go +0 -0
  199. data/lib/guile/2.2/ccache/rnrs/io/ports.go +0 -0
  200. data/lib/guile/2.2/ccache/rnrs/io/simple.go +0 -0
  201. data/lib/guile/2.2/ccache/rnrs/lists.go +0 -0
  202. data/lib/guile/2.2/ccache/rnrs/mutable-pairs.go +0 -0
  203. data/lib/guile/2.2/ccache/rnrs/mutable-strings.go +0 -0
  204. data/lib/guile/2.2/ccache/rnrs/programs.go +0 -0
  205. data/lib/guile/2.2/ccache/rnrs/r5rs.go +0 -0
  206. data/lib/guile/2.2/ccache/rnrs/records/inspection.go +0 -0
  207. data/lib/guile/2.2/ccache/rnrs/records/procedural.go +0 -0
  208. data/lib/guile/2.2/ccache/rnrs/records/syntactic.go +0 -0
  209. data/lib/guile/2.2/ccache/rnrs/sorting.go +0 -0
  210. data/lib/guile/2.2/ccache/rnrs/syntax-case.go +0 -0
  211. data/lib/guile/2.2/ccache/rnrs/unicode.go +0 -0
  212. data/lib/guile/2.2/ccache/rnrs.go +0 -0
  213. data/lib/guile/2.2/ccache/scripts/api-diff.go +0 -0
  214. data/lib/guile/2.2/ccache/scripts/autofrisk.go +0 -0
  215. data/lib/guile/2.2/ccache/scripts/compile.go +0 -0
  216. data/lib/guile/2.2/ccache/scripts/disassemble.go +0 -0
  217. data/lib/guile/2.2/ccache/scripts/display-commentary.go +0 -0
  218. data/lib/guile/2.2/ccache/scripts/doc-snarf.go +0 -0
  219. data/lib/guile/2.2/ccache/scripts/frisk.go +0 -0
  220. data/lib/guile/2.2/ccache/scripts/generate-autoload.go +0 -0
  221. data/lib/guile/2.2/ccache/scripts/help.go +0 -0
  222. data/lib/guile/2.2/ccache/scripts/lint.go +0 -0
  223. data/lib/guile/2.2/ccache/scripts/list.go +0 -0
  224. data/lib/guile/2.2/ccache/scripts/punify.go +0 -0
  225. data/lib/guile/2.2/ccache/scripts/read-rfc822.go +0 -0
  226. data/lib/guile/2.2/ccache/scripts/read-scheme-source.go +0 -0
  227. data/lib/guile/2.2/ccache/scripts/read-text-outline.go +0 -0
  228. data/lib/guile/2.2/ccache/scripts/scan-api.go +0 -0
  229. data/lib/guile/2.2/ccache/scripts/snarf-check-and-output-texi.go +0 -0
  230. data/lib/guile/2.2/ccache/scripts/snarf-guile-m4-docs.go +0 -0
  231. data/lib/guile/2.2/ccache/scripts/summarize-guile-TODO.go +0 -0
  232. data/lib/guile/2.2/ccache/scripts/use2dot.go +0 -0
  233. data/lib/guile/2.2/ccache/srfi/srfi-1.go +0 -0
  234. data/lib/guile/2.2/ccache/srfi/srfi-10.go +0 -0
  235. data/lib/guile/2.2/ccache/srfi/srfi-11.go +0 -0
  236. data/lib/guile/2.2/ccache/srfi/srfi-111.go +0 -0
  237. data/lib/guile/2.2/ccache/srfi/srfi-13.go +0 -0
  238. data/lib/guile/2.2/ccache/srfi/srfi-14.go +0 -0
  239. data/lib/guile/2.2/ccache/srfi/srfi-16.go +0 -0
  240. data/lib/guile/2.2/ccache/srfi/srfi-17.go +0 -0
  241. data/lib/guile/2.2/ccache/srfi/srfi-18.go +0 -0
  242. data/lib/guile/2.2/ccache/srfi/srfi-19.go +0 -0
  243. data/lib/guile/2.2/ccache/srfi/srfi-2.go +0 -0
  244. data/lib/guile/2.2/ccache/srfi/srfi-26.go +0 -0
  245. data/lib/guile/2.2/ccache/srfi/srfi-27.go +0 -0
  246. data/lib/guile/2.2/ccache/srfi/srfi-28.go +0 -0
  247. data/lib/guile/2.2/ccache/srfi/srfi-31.go +0 -0
  248. data/lib/guile/2.2/ccache/srfi/srfi-34.go +0 -0
  249. data/lib/guile/2.2/ccache/srfi/srfi-35.go +0 -0
  250. data/lib/guile/2.2/ccache/srfi/srfi-37.go +0 -0
  251. data/lib/guile/2.2/ccache/srfi/srfi-38.go +0 -0
  252. data/lib/guile/2.2/ccache/srfi/srfi-39.go +0 -0
  253. data/lib/guile/2.2/ccache/srfi/srfi-4/gnu.go +0 -0
  254. data/lib/guile/2.2/ccache/srfi/srfi-4.go +0 -0
  255. data/lib/guile/2.2/ccache/srfi/srfi-41.go +0 -0
  256. data/lib/guile/2.2/ccache/srfi/srfi-42.go +0 -0
  257. data/lib/guile/2.2/ccache/srfi/srfi-43.go +0 -0
  258. data/lib/guile/2.2/ccache/srfi/srfi-45.go +0 -0
  259. data/lib/guile/2.2/ccache/srfi/srfi-6.go +0 -0
  260. data/lib/guile/2.2/ccache/srfi/srfi-60.go +0 -0
  261. data/lib/guile/2.2/ccache/srfi/srfi-64.go +0 -0
  262. data/lib/guile/2.2/ccache/srfi/srfi-67.go +0 -0
  263. data/lib/guile/2.2/ccache/srfi/srfi-69.go +0 -0
  264. data/lib/guile/2.2/ccache/srfi/srfi-71.go +0 -0
  265. data/lib/guile/2.2/ccache/srfi/srfi-8.go +0 -0
  266. data/lib/guile/2.2/ccache/srfi/srfi-88.go +0 -0
  267. data/lib/guile/2.2/ccache/srfi/srfi-9/gnu.go +0 -0
  268. data/lib/guile/2.2/ccache/srfi/srfi-9.go +0 -0
  269. data/lib/guile/2.2/ccache/srfi/srfi-98.go +0 -0
  270. data/lib/guile/2.2/ccache/statprof.go +0 -0
  271. data/lib/guile/2.2/ccache/sxml/apply-templates.go +0 -0
  272. data/lib/guile/2.2/ccache/sxml/fold.go +0 -0
  273. data/lib/guile/2.2/ccache/sxml/match.go +0 -0
  274. data/lib/guile/2.2/ccache/sxml/simple.go +0 -0
  275. data/lib/guile/2.2/ccache/sxml/ssax/input-parse.go +0 -0
  276. data/lib/guile/2.2/ccache/sxml/ssax.go +0 -0
  277. data/lib/guile/2.2/ccache/sxml/transform.go +0 -0
  278. data/lib/guile/2.2/ccache/sxml/xpath.go +0 -0
  279. data/lib/guile/2.2/ccache/system/base/ck.go +0 -0
  280. data/lib/guile/2.2/ccache/system/base/compile.go +0 -0
  281. data/lib/guile/2.2/ccache/system/base/lalr.go +0 -0
  282. data/lib/guile/2.2/ccache/system/base/language.go +0 -0
  283. data/lib/guile/2.2/ccache/system/base/message.go +0 -0
  284. data/lib/guile/2.2/ccache/system/base/pmatch.go +0 -0
  285. data/lib/guile/2.2/ccache/system/base/syntax.go +0 -0
  286. data/lib/guile/2.2/ccache/system/base/target.go +0 -0
  287. data/lib/guile/2.2/ccache/system/base/types.go +0 -0
  288. data/lib/guile/2.2/ccache/system/foreign-object.go +0 -0
  289. data/lib/guile/2.2/ccache/system/foreign.go +0 -0
  290. data/lib/guile/2.2/ccache/system/repl/command.go +0 -0
  291. data/lib/guile/2.2/ccache/system/repl/common.go +0 -0
  292. data/lib/guile/2.2/ccache/system/repl/coop-server.go +0 -0
  293. data/lib/guile/2.2/ccache/system/repl/debug.go +0 -0
  294. data/lib/guile/2.2/ccache/system/repl/error-handling.go +0 -0
  295. data/lib/guile/2.2/ccache/system/repl/repl.go +0 -0
  296. data/lib/guile/2.2/ccache/system/repl/server.go +0 -0
  297. data/lib/guile/2.2/ccache/system/syntax.go +0 -0
  298. data/lib/guile/2.2/ccache/system/vm/assembler.go +0 -0
  299. data/lib/guile/2.2/ccache/system/vm/coverage.go +0 -0
  300. data/lib/guile/2.2/ccache/system/vm/debug.go +0 -0
  301. data/lib/guile/2.2/ccache/system/vm/disassembler.go +0 -0
  302. data/lib/guile/2.2/ccache/system/vm/dwarf.go +0 -0
  303. data/lib/guile/2.2/ccache/system/vm/elf.go +0 -0
  304. data/lib/guile/2.2/ccache/system/vm/frame.go +0 -0
  305. data/lib/guile/2.2/ccache/system/vm/inspect.go +0 -0
  306. data/lib/guile/2.2/ccache/system/vm/linker.go +0 -0
  307. data/lib/guile/2.2/ccache/system/vm/loader.go +0 -0
  308. data/lib/guile/2.2/ccache/system/vm/program.go +0 -0
  309. data/lib/guile/2.2/ccache/system/vm/trace.go +0 -0
  310. data/lib/guile/2.2/ccache/system/vm/trap-state.go +0 -0
  311. data/lib/guile/2.2/ccache/system/vm/traps.go +0 -0
  312. data/lib/guile/2.2/ccache/system/vm/vm.go +0 -0
  313. data/lib/guile/2.2/ccache/system/xref.go +0 -0
  314. data/lib/guile/2.2/ccache/texinfo/docbook.go +0 -0
  315. data/lib/guile/2.2/ccache/texinfo/html.go +0 -0
  316. data/lib/guile/2.2/ccache/texinfo/indexing.go +0 -0
  317. data/lib/guile/2.2/ccache/texinfo/plain-text.go +0 -0
  318. data/lib/guile/2.2/ccache/texinfo/reflection.go +0 -0
  319. data/lib/guile/2.2/ccache/texinfo/serialize.go +0 -0
  320. data/lib/guile/2.2/ccache/texinfo/string-utils.go +0 -0
  321. data/lib/guile/2.2/ccache/texinfo.go +0 -0
  322. data/lib/guile/2.2/ccache/web/client.go +0 -0
  323. data/lib/guile/2.2/ccache/web/http.go +0 -0
  324. data/lib/guile/2.2/ccache/web/request.go +0 -0
  325. data/lib/guile/2.2/ccache/web/response.go +0 -0
  326. data/lib/guile/2.2/ccache/web/server/http.go +0 -0
  327. data/lib/guile/2.2/ccache/web/server.go +0 -0
  328. data/lib/guile/2.2/ccache/web/uri.go +0 -0
  329. data/lib/lilypond/2.24.1/ccache/lily/accreg.go +0 -0
  330. data/lib/lilypond/2.24.1/ccache/lily/auto-beam.go +0 -0
  331. data/lib/lilypond/2.24.1/ccache/lily/autochange.go +0 -0
  332. data/lib/lilypond/2.24.1/ccache/lily/backend-library.go +0 -0
  333. data/lib/lilypond/2.24.1/ccache/lily/bar-line.go +0 -0
  334. data/lib/lilypond/2.24.1/ccache/lily/breath.go +0 -0
  335. data/lib/lilypond/2.24.1/ccache/lily/c++.go +0 -0
  336. data/lib/lilypond/2.24.1/ccache/lily/chord-entry.go +0 -0
  337. data/lib/lilypond/2.24.1/ccache/lily/chord-ignatzek-names.go +0 -0
  338. data/lib/lilypond/2.24.1/ccache/lily/chord-name.go +0 -0
  339. data/lib/lilypond/2.24.1/ccache/lily/clip-region.go +0 -0
  340. data/lib/lilypond/2.24.1/ccache/lily/color.go +0 -0
  341. data/lib/lilypond/2.24.1/ccache/lily/curried-definitions.go +0 -0
  342. data/lib/lilypond/2.24.1/ccache/lily/define-context-properties.go +0 -0
  343. data/lib/lilypond/2.24.1/ccache/lily/define-event-classes.go +0 -0
  344. data/lib/lilypond/2.24.1/ccache/lily/define-grob-interfaces.go +0 -0
  345. data/lib/lilypond/2.24.1/ccache/lily/define-grob-properties.go +0 -0
  346. data/lib/lilypond/2.24.1/ccache/lily/define-grobs.go +0 -0
  347. data/lib/lilypond/2.24.1/ccache/lily/define-markup-commands.go +0 -0
  348. data/lib/lilypond/2.24.1/ccache/lily/define-music-callbacks.go +0 -0
  349. data/lib/lilypond/2.24.1/ccache/lily/define-music-display-methods.go +0 -0
  350. data/lib/lilypond/2.24.1/ccache/lily/define-music-properties.go +0 -0
  351. data/lib/lilypond/2.24.1/ccache/lily/define-music-types.go +0 -0
  352. data/lib/lilypond/2.24.1/ccache/lily/define-note-names.go +0 -0
  353. data/lib/lilypond/2.24.1/ccache/lily/define-stencil-commands.go +0 -0
  354. data/lib/lilypond/2.24.1/ccache/lily/define-woodwind-diagrams.go +0 -0
  355. data/lib/lilypond/2.24.1/ccache/lily/display-lily.go +0 -0
  356. data/lib/lilypond/2.24.1/ccache/lily/display-woodwind-diagrams.go +0 -0
  357. data/lib/lilypond/2.24.1/ccache/lily/file-cache.go +0 -0
  358. data/lib/lilypond/2.24.1/ccache/lily/flag-styles.go +0 -0
  359. data/lib/lilypond/2.24.1/ccache/lily/font-encodings.go +0 -0
  360. data/lib/lilypond/2.24.1/ccache/lily/font.go +0 -0
  361. data/lib/lilypond/2.24.1/ccache/lily/framework-cairo.go +0 -0
  362. data/lib/lilypond/2.24.1/ccache/lily/framework-ps.go +0 -0
  363. data/lib/lilypond/2.24.1/ccache/lily/framework-svg.go +0 -0
  364. data/lib/lilypond/2.24.1/ccache/lily/fret-diagrams.go +0 -0
  365. data/lib/lilypond/2.24.1/ccache/lily/graphviz.go +0 -0
  366. data/lib/lilypond/2.24.1/ccache/lily/harp-pedals.go +0 -0
  367. data/lib/lilypond/2.24.1/ccache/lily/layout-beam.go +0 -0
  368. data/lib/lilypond/2.24.1/ccache/lily/layout-slur.go +0 -0
  369. data/lib/lilypond/2.24.1/ccache/lily/lily-library.go +0 -0
  370. data/lib/lilypond/2.24.1/ccache/lily/lily.go +0 -0
  371. data/lib/lilypond/2.24.1/ccache/lily/ly-syntax-constructors.go +0 -0
  372. data/lib/lilypond/2.24.1/ccache/lily/markup-macros.go +0 -0
  373. data/lib/lilypond/2.24.1/ccache/lily/markup.go +0 -0
  374. data/lib/lilypond/2.24.1/ccache/lily/midi.go +0 -0
  375. data/lib/lilypond/2.24.1/ccache/lily/modal-transforms.go +0 -0
  376. data/lib/lilypond/2.24.1/ccache/lily/music-functions.go +0 -0
  377. data/lib/lilypond/2.24.1/ccache/lily/output-lib.go +0 -0
  378. data/lib/lilypond/2.24.1/ccache/lily/output-ps.go +0 -0
  379. data/lib/lilypond/2.24.1/ccache/lily/output-svg.go +0 -0
  380. data/lib/lilypond/2.24.1/ccache/lily/page.go +0 -0
  381. data/lib/lilypond/2.24.1/ccache/lily/paper-system.go +0 -0
  382. data/lib/lilypond/2.24.1/ccache/lily/paper.go +0 -0
  383. data/lib/lilypond/2.24.1/ccache/lily/parser-clef.go +0 -0
  384. data/lib/lilypond/2.24.1/ccache/lily/parser-ly-from-scheme.go +0 -0
  385. data/lib/lilypond/2.24.1/ccache/lily/part-combiner.go +0 -0
  386. data/lib/lilypond/2.24.1/ccache/lily/predefined-fretboards.go +0 -0
  387. data/lib/lilypond/2.24.1/ccache/lily/ps-to-png.go +0 -0
  388. data/lib/lilypond/2.24.1/ccache/lily/scheme-engravers.go +0 -0
  389. data/lib/lilypond/2.24.1/ccache/lily/scheme-performers.go +0 -0
  390. data/lib/lilypond/2.24.1/ccache/lily/script.go +0 -0
  391. data/lib/lilypond/2.24.1/ccache/lily/skyline.go +0 -0
  392. data/lib/lilypond/2.24.1/ccache/lily/song-util.go +0 -0
  393. data/lib/lilypond/2.24.1/ccache/lily/song.go +0 -0
  394. data/lib/lilypond/2.24.1/ccache/lily/stencil.go +0 -0
  395. data/lib/lilypond/2.24.1/ccache/lily/tablature.go +0 -0
  396. data/lib/lilypond/2.24.1/ccache/lily/time-signature-settings.go +0 -0
  397. data/lib/lilypond/2.24.1/ccache/lily/time-signature.go +0 -0
  398. data/lib/lilypond/2.24.1/ccache/lily/titling.go +0 -0
  399. data/lib/lilypond/2.24.1/ccache/lily/to-xml.go +0 -0
  400. data/lib/lilypond/2.24.1/ccache/lily/translation-functions.go +0 -0
  401. data/share/emacs/site-lisp/lilypond-font-lock.el +208 -0
  402. data/share/emacs/site-lisp/lilypond-indent.el +605 -0
  403. data/share/emacs/site-lisp/lilypond-init.el +21 -0
  404. data/share/emacs/site-lisp/lilypond-mode.el +1204 -0
  405. data/share/emacs/site-lisp/lilypond-song.el +556 -0
  406. data/share/emacs/site-lisp/lilypond-what-beat.el +279 -0
  407. data/share/emacs/site-lisp/lilypond-words.el +1428 -0
  408. data/share/guile/2.2/guile-procedures.txt +8860 -0
  409. data/share/guile/2.2/ice-9/and-let-star.scm +73 -0
  410. data/share/guile/2.2/ice-9/arrays.scm +70 -0
  411. data/share/guile/2.2/ice-9/atomic.scm +38 -0
  412. data/share/guile/2.2/ice-9/binary-ports.scm +53 -0
  413. data/share/guile/2.2/ice-9/boot-9.scm +4131 -0
  414. data/share/guile/2.2/ice-9/buffered-input.scm +109 -0
  415. data/share/guile/2.2/ice-9/calling.scm +326 -0
  416. data/share/guile/2.2/ice-9/channel.scm +170 -0
  417. data/share/guile/2.2/ice-9/command-line.scm +477 -0
  418. data/share/guile/2.2/ice-9/common-list.scm +278 -0
  419. data/share/guile/2.2/ice-9/control.scm +110 -0
  420. data/share/guile/2.2/ice-9/curried-definitions.scm +57 -0
  421. data/share/guile/2.2/ice-9/debug.scm +25 -0
  422. data/share/guile/2.2/ice-9/deprecated.scm +93 -0
  423. data/share/guile/2.2/ice-9/documentation.scm +203 -0
  424. data/share/guile/2.2/ice-9/eval-string.scm +90 -0
  425. data/share/guile/2.2/ice-9/eval.scm +723 -0
  426. data/share/guile/2.2/ice-9/expect.scm +171 -0
  427. data/share/guile/2.2/ice-9/fdes-finalizers.scm +25 -0
  428. data/share/guile/2.2/ice-9/format.scm +1626 -0
  429. data/share/guile/2.2/ice-9/ftw.scm +564 -0
  430. data/share/guile/2.2/ice-9/futures.scm +308 -0
  431. data/share/guile/2.2/ice-9/gap-buffer.scm +283 -0
  432. data/share/guile/2.2/ice-9/getopt-long.scm +371 -0
  433. data/share/guile/2.2/ice-9/hash-table.scm +45 -0
  434. data/share/guile/2.2/ice-9/hcons.scm +80 -0
  435. data/share/guile/2.2/ice-9/history.scm +65 -0
  436. data/share/guile/2.2/ice-9/i18n.scm +531 -0
  437. data/share/guile/2.2/ice-9/iconv.scm +95 -0
  438. data/share/guile/2.2/ice-9/lineio.scm +115 -0
  439. data/share/guile/2.2/ice-9/list.scm +36 -0
  440. data/share/guile/2.2/ice-9/local-eval.scm +261 -0
  441. data/share/guile/2.2/ice-9/ls.scm +94 -0
  442. data/share/guile/2.2/ice-9/mapping.scm +118 -0
  443. data/share/guile/2.2/ice-9/match.scm +59 -0
  444. data/share/guile/2.2/ice-9/match.upstream.scm +917 -0
  445. data/share/guile/2.2/ice-9/networking.scm +94 -0
  446. data/share/guile/2.2/ice-9/null.scm +34 -0
  447. data/share/guile/2.2/ice-9/occam-channel.scm +261 -0
  448. data/share/guile/2.2/ice-9/optargs.scm +381 -0
  449. data/share/guile/2.2/ice-9/peg/cache.scm +45 -0
  450. data/share/guile/2.2/ice-9/peg/codegen.scm +359 -0
  451. data/share/guile/2.2/ice-9/peg/simplify-tree.scm +97 -0
  452. data/share/guile/2.2/ice-9/peg/string-peg.scm +273 -0
  453. data/share/guile/2.2/ice-9/peg/using-parsers.scm +116 -0
  454. data/share/guile/2.2/ice-9/peg.scm +42 -0
  455. data/share/guile/2.2/ice-9/poe.scm +116 -0
  456. data/share/guile/2.2/ice-9/poll.scm +172 -0
  457. data/share/guile/2.2/ice-9/popen.scm +178 -0
  458. data/share/guile/2.2/ice-9/ports.scm +566 -0
  459. data/share/guile/2.2/ice-9/posix.scm +75 -0
  460. data/share/guile/2.2/ice-9/pretty-print.scm +483 -0
  461. data/share/guile/2.2/ice-9/psyntax-pp.scm +3542 -0
  462. data/share/guile/2.2/ice-9/psyntax.scm +3326 -0
  463. data/share/guile/2.2/ice-9/q.scm +153 -0
  464. data/share/guile/2.2/ice-9/quasisyntax.scm +136 -0
  465. data/share/guile/2.2/ice-9/r5rs.scm +45 -0
  466. data/share/guile/2.2/ice-9/r6rs-libraries.scm +242 -0
  467. data/share/guile/2.2/ice-9/rdelim.scm +208 -0
  468. data/share/guile/2.2/ice-9/receive.scm +26 -0
  469. data/share/guile/2.2/ice-9/regex.scm +229 -0
  470. data/share/guile/2.2/ice-9/runq.scm +241 -0
  471. data/share/guile/2.2/ice-9/rw.scm +27 -0
  472. data/share/guile/2.2/ice-9/safe-r5rs.scm +145 -0
  473. data/share/guile/2.2/ice-9/safe.scm +34 -0
  474. data/share/guile/2.2/ice-9/sandbox.scm +1399 -0
  475. data/share/guile/2.2/ice-9/save-stack.scm +58 -0
  476. data/share/guile/2.2/ice-9/scm-style-repl.scm +279 -0
  477. data/share/guile/2.2/ice-9/serialize.scm +114 -0
  478. data/share/guile/2.2/ice-9/session.scm +530 -0
  479. data/share/guile/2.2/ice-9/slib.scm +33 -0
  480. data/share/guile/2.2/ice-9/stack-catch.scm +47 -0
  481. data/share/guile/2.2/ice-9/streams.scm +168 -0
  482. data/share/guile/2.2/ice-9/string-fun.scm +280 -0
  483. data/share/guile/2.2/ice-9/suspendable-ports.scm +788 -0
  484. data/share/guile/2.2/ice-9/syncase.scm +37 -0
  485. data/share/guile/2.2/ice-9/textual-ports.scm +70 -0
  486. data/share/guile/2.2/ice-9/threads.scm +392 -0
  487. data/share/guile/2.2/ice-9/time.scm +58 -0
  488. data/share/guile/2.2/ice-9/top-repl.scm +78 -0
  489. data/share/guile/2.2/ice-9/unicode.scm +26 -0
  490. data/share/guile/2.2/ice-9/vlist.scm +595 -0
  491. data/share/guile/2.2/ice-9/weak-vector.scm +31 -0
  492. data/share/guile/2.2/language/brainfuck/compile-scheme.scm +123 -0
  493. data/share/guile/2.2/language/brainfuck/compile-tree-il.scm +184 -0
  494. data/share/guile/2.2/language/brainfuck/parse.scm +95 -0
  495. data/share/guile/2.2/language/brainfuck/spec.scm +43 -0
  496. data/share/guile/2.2/language/bytecode/spec.scm +42 -0
  497. data/share/guile/2.2/language/bytecode.scm +104 -0
  498. data/share/guile/2.2/language/cps/closure-conversion.scm +848 -0
  499. data/share/guile/2.2/language/cps/compile-bytecode.scm +610 -0
  500. data/share/guile/2.2/language/cps/constructors.scm +106 -0
  501. data/share/guile/2.2/language/cps/contification.scm +448 -0
  502. data/share/guile/2.2/language/cps/cse.scm +414 -0
  503. data/share/guile/2.2/language/cps/dce.scm +363 -0
  504. data/share/guile/2.2/language/cps/effects-analysis.scm +597 -0
  505. data/share/guile/2.2/language/cps/elide-values.scm +88 -0
  506. data/share/guile/2.2/language/cps/handle-interrupts.scm +69 -0
  507. data/share/guile/2.2/language/cps/intmap.scm +765 -0
  508. data/share/guile/2.2/language/cps/intset.scm +830 -0
  509. data/share/guile/2.2/language/cps/licm.scm +308 -0
  510. data/share/guile/2.2/language/cps/optimize.scm +135 -0
  511. data/share/guile/2.2/language/cps/peel-loops.scm +287 -0
  512. data/share/guile/2.2/language/cps/primitives.scm +141 -0
  513. data/share/guile/2.2/language/cps/prune-bailouts.scm +86 -0
  514. data/share/guile/2.2/language/cps/prune-top-level-scopes.scm +63 -0
  515. data/share/guile/2.2/language/cps/reify-primitives.scm +179 -0
  516. data/share/guile/2.2/language/cps/renumber.scm +217 -0
  517. data/share/guile/2.2/language/cps/rotate-loops.scm +239 -0
  518. data/share/guile/2.2/language/cps/self-references.scm +79 -0
  519. data/share/guile/2.2/language/cps/simplify.scm +274 -0
  520. data/share/guile/2.2/language/cps/slot-allocation.scm +1058 -0
  521. data/share/guile/2.2/language/cps/spec.scm +51 -0
  522. data/share/guile/2.2/language/cps/specialize-numbers.scm +724 -0
  523. data/share/guile/2.2/language/cps/specialize-primcalls.scm +87 -0
  524. data/share/guile/2.2/language/cps/split-rec.scm +174 -0
  525. data/share/guile/2.2/language/cps/type-checks.scm +72 -0
  526. data/share/guile/2.2/language/cps/type-fold.scm +455 -0
  527. data/share/guile/2.2/language/cps/types.scm +1826 -0
  528. data/share/guile/2.2/language/cps/utils.scm +550 -0
  529. data/share/guile/2.2/language/cps/verify.scm +304 -0
  530. data/share/guile/2.2/language/cps/with-cps.scm +145 -0
  531. data/share/guile/2.2/language/cps.scm +358 -0
  532. data/share/guile/2.2/language/ecmascript/array.scm +121 -0
  533. data/share/guile/2.2/language/ecmascript/base.scm +251 -0
  534. data/share/guile/2.2/language/ecmascript/compile-tree-il.scm +576 -0
  535. data/share/guile/2.2/language/ecmascript/function.scm +78 -0
  536. data/share/guile/2.2/language/ecmascript/impl.scm +169 -0
  537. data/share/guile/2.2/language/ecmascript/parse.scm +352 -0
  538. data/share/guile/2.2/language/ecmascript/spec.scm +37 -0
  539. data/share/guile/2.2/language/ecmascript/tokenize.scm +513 -0
  540. data/share/guile/2.2/language/elisp/bindings.scm +107 -0
  541. data/share/guile/2.2/language/elisp/boot.el +617 -0
  542. data/share/guile/2.2/language/elisp/compile-tree-il.scm +812 -0
  543. data/share/guile/2.2/language/elisp/falias.scm +47 -0
  544. data/share/guile/2.2/language/elisp/lexer.scm +430 -0
  545. data/share/guile/2.2/language/elisp/parser.scm +222 -0
  546. data/share/guile/2.2/language/elisp/runtime/function-slot.scm +63 -0
  547. data/share/guile/2.2/language/elisp/runtime/value-slot.scm +24 -0
  548. data/share/guile/2.2/language/elisp/runtime.scm +153 -0
  549. data/share/guile/2.2/language/elisp/spec.scm +43 -0
  550. data/share/guile/2.2/language/scheme/compile-tree-il.scm +33 -0
  551. data/share/guile/2.2/language/scheme/decompile-tree-il.scm +796 -0
  552. data/share/guile/2.2/language/scheme/spec.scm +63 -0
  553. data/share/guile/2.2/language/tree-il/analyze.scm +1568 -0
  554. data/share/guile/2.2/language/tree-il/canonicalize.scm +82 -0
  555. data/share/guile/2.2/language/tree-il/compile-cps.scm +1149 -0
  556. data/share/guile/2.2/language/tree-il/debug.scm +246 -0
  557. data/share/guile/2.2/language/tree-il/effects.scm +591 -0
  558. data/share/guile/2.2/language/tree-il/fix-letrec.scm +314 -0
  559. data/share/guile/2.2/language/tree-il/optimize.scm +43 -0
  560. data/share/guile/2.2/language/tree-il/peval.scm +1669 -0
  561. data/share/guile/2.2/language/tree-il/primitives.scm +630 -0
  562. data/share/guile/2.2/language/tree-il/spec.scm +46 -0
  563. data/share/guile/2.2/language/tree-il.scm +630 -0
  564. data/share/guile/2.2/language/value/spec.scm +30 -0
  565. data/share/guile/2.2/oop/goops/accessors.scm +72 -0
  566. data/share/guile/2.2/oop/goops/active-slot.scm +63 -0
  567. data/share/guile/2.2/oop/goops/composite-slot.scm +83 -0
  568. data/share/guile/2.2/oop/goops/describe.scm +189 -0
  569. data/share/guile/2.2/oop/goops/internal.scm +30 -0
  570. data/share/guile/2.2/oop/goops/save.scm +874 -0
  571. data/share/guile/2.2/oop/goops/simple.scm +30 -0
  572. data/share/guile/2.2/oop/goops/stklos.scm +74 -0
  573. data/share/guile/2.2/oop/goops.scm +3176 -0
  574. data/share/guile/2.2/rnrs/arithmetic/bitwise.scm +92 -0
  575. data/share/guile/2.2/rnrs/arithmetic/fixnums.scm +291 -0
  576. data/share/guile/2.2/rnrs/arithmetic/flonums.scm +203 -0
  577. data/share/guile/2.2/rnrs/base.scm +291 -0
  578. data/share/guile/2.2/rnrs/bytevectors.scm +83 -0
  579. data/share/guile/2.2/rnrs/conditions.scm +225 -0
  580. data/share/guile/2.2/rnrs/control.scm +22 -0
  581. data/share/guile/2.2/rnrs/enums.scm +152 -0
  582. data/share/guile/2.2/rnrs/eval.scm +39 -0
  583. data/share/guile/2.2/rnrs/exceptions.scm +276 -0
  584. data/share/guile/2.2/rnrs/files.scm +96 -0
  585. data/share/guile/2.2/rnrs/hashtables.scm +190 -0
  586. data/share/guile/2.2/rnrs/io/ports.scm +554 -0
  587. data/share/guile/2.2/rnrs/io/simple.scm +167 -0
  588. data/share/guile/2.2/rnrs/lists.scm +55 -0
  589. data/share/guile/2.2/rnrs/mutable-pairs.scm +23 -0
  590. data/share/guile/2.2/rnrs/mutable-strings.scm +23 -0
  591. data/share/guile/2.2/rnrs/programs.scm +22 -0
  592. data/share/guile/2.2/rnrs/r5rs.scm +34 -0
  593. data/share/guile/2.2/rnrs/records/inspection.scm +81 -0
  594. data/share/guile/2.2/rnrs/records/procedural.scm +289 -0
  595. data/share/guile/2.2/rnrs/records/syntactic.scm +248 -0
  596. data/share/guile/2.2/rnrs/sorting.scm +27 -0
  597. data/share/guile/2.2/rnrs/syntax-case.scm +68 -0
  598. data/share/guile/2.2/rnrs/unicode.scm +104 -0
  599. data/share/guile/2.2/rnrs.scm +289 -0
  600. data/share/guile/2.2/scripts/api-diff.scm +179 -0
  601. data/share/guile/2.2/scripts/autofrisk.scm +218 -0
  602. data/share/guile/2.2/scripts/compile.scm +273 -0
  603. data/share/guile/2.2/scripts/disassemble.scm +38 -0
  604. data/share/guile/2.2/scripts/display-commentary.scm +67 -0
  605. data/share/guile/2.2/scripts/doc-snarf.scm +439 -0
  606. data/share/guile/2.2/scripts/frisk.scm +290 -0
  607. data/share/guile/2.2/scripts/generate-autoload.scm +144 -0
  608. data/share/guile/2.2/scripts/help.scm +188 -0
  609. data/share/guile/2.2/scripts/lint.scm +318 -0
  610. data/share/guile/2.2/scripts/list.scm +91 -0
  611. data/share/guile/2.2/scripts/punify.scm +87 -0
  612. data/share/guile/2.2/scripts/read-rfc822.scm +131 -0
  613. data/share/guile/2.2/scripts/read-scheme-source.scm +282 -0
  614. data/share/guile/2.2/scripts/read-text-outline.scm +253 -0
  615. data/share/guile/2.2/scripts/scan-api.scm +223 -0
  616. data/share/guile/2.2/scripts/snarf-check-and-output-texi.scm +303 -0
  617. data/share/guile/2.2/scripts/snarf-guile-m4-docs.scm +86 -0
  618. data/share/guile/2.2/scripts/summarize-guile-TODO.scm +213 -0
  619. data/share/guile/2.2/scripts/use2dot.scm +110 -0
  620. data/share/guile/2.2/srfi/srfi-1.scm +1061 -0
  621. data/share/guile/2.2/srfi/srfi-10.scm +89 -0
  622. data/share/guile/2.2/srfi/srfi-11.scm +146 -0
  623. data/share/guile/2.2/srfi/srfi-111.scm +37 -0
  624. data/share/guile/2.2/srfi/srfi-13.scm +132 -0
  625. data/share/guile/2.2/srfi/srfi-14.scm +99 -0
  626. data/share/guile/2.2/srfi/srfi-16.scm +51 -0
  627. data/share/guile/2.2/srfi/srfi-17.scm +174 -0
  628. data/share/guile/2.2/srfi/srfi-18.scm +382 -0
  629. data/share/guile/2.2/srfi/srfi-19.scm +1470 -0
  630. data/share/guile/2.2/srfi/srfi-2.scm +31 -0
  631. data/share/guile/2.2/srfi/srfi-26.scm +66 -0
  632. data/share/guile/2.2/srfi/srfi-27.scm +96 -0
  633. data/share/guile/2.2/srfi/srfi-28.scm +34 -0
  634. data/share/guile/2.2/srfi/srfi-31.scm +35 -0
  635. data/share/guile/2.2/srfi/srfi-34.scm +84 -0
  636. data/share/guile/2.2/srfi/srfi-35.scm +351 -0
  637. data/share/guile/2.2/srfi/srfi-37.scm +234 -0
  638. data/share/guile/2.2/srfi/srfi-38.scm +207 -0
  639. data/share/guile/2.2/srfi/srfi-39.scm +55 -0
  640. data/share/guile/2.2/srfi/srfi-4/gnu.scm +80 -0
  641. data/share/guile/2.2/srfi/srfi-4.scm +118 -0
  642. data/share/guile/2.2/srfi/srfi-41.scm +505 -0
  643. data/share/guile/2.2/srfi/srfi-42/ec.scm +1053 -0
  644. data/share/guile/2.2/srfi/srfi-42.scm +66 -0
  645. data/share/guile/2.2/srfi/srfi-43.scm +1077 -0
  646. data/share/guile/2.2/srfi/srfi-45.scm +93 -0
  647. data/share/guile/2.2/srfi/srfi-6.scm +29 -0
  648. data/share/guile/2.2/srfi/srfi-60.scm +73 -0
  649. data/share/guile/2.2/srfi/srfi-64/testing.scm +1040 -0
  650. data/share/guile/2.2/srfi/srfi-64.scm +55 -0
  651. data/share/guile/2.2/srfi/srfi-67/compare.scm +686 -0
  652. data/share/guile/2.2/srfi/srfi-67.scm +88 -0
  653. data/share/guile/2.2/srfi/srfi-69.scm +336 -0
  654. data/share/guile/2.2/srfi/srfi-71.scm +267 -0
  655. data/share/guile/2.2/srfi/srfi-8.scm +31 -0
  656. data/share/guile/2.2/srfi/srfi-88.scm +53 -0
  657. data/share/guile/2.2/srfi/srfi-9/gnu.scm +168 -0
  658. data/share/guile/2.2/srfi/srfi-9.scm +351 -0
  659. data/share/guile/2.2/srfi/srfi-98.scm +44 -0
  660. data/share/guile/2.2/statprof.scm +988 -0
  661. data/share/guile/2.2/sxml/apply-templates.scm +102 -0
  662. data/share/guile/2.2/sxml/fold.scm +250 -0
  663. data/share/guile/2.2/sxml/match.scm +75 -0
  664. data/share/guile/2.2/sxml/simple.scm +408 -0
  665. data/share/guile/2.2/sxml/ssax/input-parse.scm +180 -0
  666. data/share/guile/2.2/sxml/ssax.scm +265 -0
  667. data/share/guile/2.2/sxml/sxml-match.ss +1181 -0
  668. data/share/guile/2.2/sxml/transform.scm +298 -0
  669. data/share/guile/2.2/sxml/upstream/SSAX.scm +3235 -0
  670. data/share/guile/2.2/sxml/upstream/SXML-tree-trans.scm +249 -0
  671. data/share/guile/2.2/sxml/upstream/SXPath-old.scm +1216 -0
  672. data/share/guile/2.2/sxml/upstream/assert.scm +35 -0
  673. data/share/guile/2.2/sxml/upstream/input-parse.scm +326 -0
  674. data/share/guile/2.2/sxml/xpath.scm +493 -0
  675. data/share/guile/2.2/system/base/ck.scm +55 -0
  676. data/share/guile/2.2/system/base/compile.scm +282 -0
  677. data/share/guile/2.2/system/base/lalr.scm +51 -0
  678. data/share/guile/2.2/system/base/lalr.upstream.scm +2096 -0
  679. data/share/guile/2.2/system/base/language.scm +119 -0
  680. data/share/guile/2.2/system/base/message.scm +238 -0
  681. data/share/guile/2.2/system/base/pmatch.scm +68 -0
  682. data/share/guile/2.2/system/base/syntax.scm +299 -0
  683. data/share/guile/2.2/system/base/target.scm +152 -0
  684. data/share/guile/2.2/system/base/types.scm +561 -0
  685. data/share/guile/2.2/system/foreign-object.scm +91 -0
  686. data/share/guile/2.2/system/foreign.scm +200 -0
  687. data/share/guile/2.2/system/repl/command.scm +946 -0
  688. data/share/guile/2.2/system/repl/common.scm +263 -0
  689. data/share/guile/2.2/system/repl/coop-server.scm +200 -0
  690. data/share/guile/2.2/system/repl/debug.scm +210 -0
  691. data/share/guile/2.2/system/repl/describe.scm +347 -0
  692. data/share/guile/2.2/system/repl/error-handling.scm +183 -0
  693. data/share/guile/2.2/system/repl/repl.scm +233 -0
  694. data/share/guile/2.2/system/repl/server.scm +332 -0
  695. data/share/guile/2.2/system/syntax.scm +33 -0
  696. data/share/guile/2.2/system/vm/assembler.scm +2614 -0
  697. data/share/guile/2.2/system/vm/coverage.scm +351 -0
  698. data/share/guile/2.2/system/vm/debug.scm +766 -0
  699. data/share/guile/2.2/system/vm/disassembler.scm +658 -0
  700. data/share/guile/2.2/system/vm/dwarf.scm +1852 -0
  701. data/share/guile/2.2/system/vm/elf.scm +1042 -0
  702. data/share/guile/2.2/system/vm/frame.scm +485 -0
  703. data/share/guile/2.2/system/vm/inspect.scm +188 -0
  704. data/share/guile/2.2/system/vm/linker.scm +732 -0
  705. data/share/guile/2.2/system/vm/loader.scm +27 -0
  706. data/share/guile/2.2/system/vm/program.scm +312 -0
  707. data/share/guile/2.2/system/vm/trace.scm +121 -0
  708. data/share/guile/2.2/system/vm/trap-state.scm +302 -0
  709. data/share/guile/2.2/system/vm/traps.scm +608 -0
  710. data/share/guile/2.2/system/vm/vm.scm +32 -0
  711. data/share/guile/2.2/system/xref.scm +369 -0
  712. data/share/guile/2.2/texinfo/docbook.scm +240 -0
  713. data/share/guile/2.2/texinfo/html.scm +279 -0
  714. data/share/guile/2.2/texinfo/indexing.scm +75 -0
  715. data/share/guile/2.2/texinfo/plain-text.scm +322 -0
  716. data/share/guile/2.2/texinfo/reflection.scm +585 -0
  717. data/share/guile/2.2/texinfo/serialize.scm +300 -0
  718. data/share/guile/2.2/texinfo/string-utils.scm +410 -0
  719. data/share/guile/2.2/texinfo.scm +1263 -0
  720. data/share/guile/2.2/web/client.scm +513 -0
  721. data/share/guile/2.2/web/http.scm +2043 -0
  722. data/share/guile/2.2/web/request.scm +326 -0
  723. data/share/guile/2.2/web/response.scm +379 -0
  724. data/share/guile/2.2/web/server/http.scm +183 -0
  725. data/share/guile/2.2/web/server.scm +397 -0
  726. data/share/guile/2.2/web/uri.scm +552 -0
  727. data/share/lilypond/2.24.1/fontconfig/0bd3dc0958fa2205aaaa8ebb13e2872b-le64.cache-8 +0 -0
  728. data/share/lilypond/2.24.1/fontconfig/188ac73a183f12857f63bb60a4a6d603-le64.cache-8 +0 -0
  729. data/share/lilypond/2.24.1/fontconfig/32b6488e5b8292a2e95c79d947e009e8-le64.cache-8 +0 -0
  730. data/share/lilypond/2.24.1/fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le64.cache-8 +0 -0
  731. data/share/lilypond/2.24.1/fontconfig/3f7329c5293ffd510edef78f73874cfd-le64.cache-8 +0 -0
  732. data/share/lilypond/2.24.1/fontconfig/4c599c202bc5c08e2d34565a40eac3b2-le64.cache-8 +0 -0
  733. data/share/lilypond/2.24.1/fontconfig/57e423e26b20ab21d0f2f29c145174c3-le64.cache-8 +0 -0
  734. data/share/lilypond/2.24.1/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-8 +0 -0
  735. data/share/lilypond/2.24.1/fontconfig/826f6b6ef79022e2eac8af26bf4b62f2-le64.cache-8 +0 -0
  736. data/share/lilypond/2.24.1/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-8 +0 -0
  737. data/share/lilypond/2.24.1/fontconfig/95530828ff6c81d309f8258d8d02a23e-le64.cache-8 +0 -0
  738. data/share/lilypond/2.24.1/fontconfig/CACHEDIR.TAG +4 -0
  739. data/share/lilypond/2.24.1/fontconfig/bf3b770c553c462765856025a94f1ce6-le64.cache-8 +0 -0
  740. data/share/lilypond/2.24.1/fontconfig/c855463f699352c367813e37f3f70ea7-le64.cache-8 +0 -0
  741. data/share/lilypond/2.24.1/fontconfig/d3e5c4ee2ceb1fc347f91d4cefc53bc0-le64.cache-8 +0 -0
  742. data/share/lilypond/2.24.1/fontconfig/d589a48862398ed80a3d6066f4f56f4c-le64.cache-8 +0 -0
  743. data/share/lilypond/2.24.1/fontconfig/d82eb4fd963d448e2fcb7d7b793b5df3-le64.cache-8 +0 -0
  744. data/share/lilypond/2.24.1/fontconfig/e13b20fdb08344e0e664864cc2ede53d-le64.cache-8 +0 -0
  745. data/share/lilypond/2.24.1/fontconfig/e52a45a1c8c8fe895fc0fc8c4e6999b8-le64.cache-8 +0 -0
  746. data/share/lilypond/2.24.1/fontconfig/f1f2465696798768e9653f19e17ccdc8-le64.cache-8 +0 -0
  747. data/share/lilypond/2.24.1/fonts/00-lilypond-fonts.conf +99 -0
  748. data/share/lilypond/2.24.1/fonts/99-lilypond-fonts.conf +28 -0
  749. data/share/lilypond/2.24.1/fonts/otf/C059-BdIta.otf +0 -0
  750. data/share/lilypond/2.24.1/fonts/otf/C059-Bold.otf +0 -0
  751. data/share/lilypond/2.24.1/fonts/otf/C059-Italic.otf +0 -0
  752. data/share/lilypond/2.24.1/fonts/otf/C059-Roman.otf +0 -0
  753. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Bold.otf +0 -0
  754. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-BoldItalic.otf +0 -0
  755. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Italic.otf +0 -0
  756. data/share/lilypond/2.24.1/fonts/otf/NimbusMonoPS-Regular.otf +0 -0
  757. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Bold.otf +0 -0
  758. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-BoldItalic.otf +0 -0
  759. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Italic.otf +0 -0
  760. data/share/lilypond/2.24.1/fonts/otf/NimbusSans-Regular.otf +0 -0
  761. data/share/lilypond/2.24.1/fonts/otf/emmentaler-11.otf +0 -0
  762. data/share/lilypond/2.24.1/fonts/otf/emmentaler-13.otf +0 -0
  763. data/share/lilypond/2.24.1/fonts/otf/emmentaler-14.otf +0 -0
  764. data/share/lilypond/2.24.1/fonts/otf/emmentaler-16.otf +0 -0
  765. data/share/lilypond/2.24.1/fonts/otf/emmentaler-18.otf +0 -0
  766. data/share/lilypond/2.24.1/fonts/otf/emmentaler-20.otf +0 -0
  767. data/share/lilypond/2.24.1/fonts/otf/emmentaler-23.otf +0 -0
  768. data/share/lilypond/2.24.1/fonts/otf/emmentaler-26.otf +0 -0
  769. data/share/lilypond/2.24.1/fonts/otf/emmentaler-brace.otf +0 -0
  770. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-bold.otf +0 -0
  771. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-bolditalic.otf +0 -0
  772. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-italic.otf +0 -0
  773. data/share/lilypond/2.24.1/fonts/otf/texgyrecursor-regular.otf +0 -0
  774. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-bold.otf +0 -0
  775. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-bolditalic.otf +0 -0
  776. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-italic.otf +0 -0
  777. data/share/lilypond/2.24.1/fonts/otf/texgyreheros-regular.otf +0 -0
  778. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-bold.otf +0 -0
  779. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-bolditalic.otf +0 -0
  780. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-italic.otf +0 -0
  781. data/share/lilypond/2.24.1/fonts/otf/texgyreschola-regular.otf +0 -0
  782. data/share/lilypond/2.24.1/fonts/source/common-modules-and-initialization.mf +26 -0
  783. data/share/lilypond/2.24.1/fonts/source/debugging-settings.mf +14 -0
  784. data/share/lilypond/2.24.1/fonts/source/declare-autometric-parameters.mf +9 -0
  785. data/share/lilypond/2.24.1/fonts/source/feta-accidentals.mf +58 -0
  786. data/share/lilypond/2.24.1/fonts/source/feta-accordion.mf +575 -0
  787. data/share/lilypond/2.24.1/fonts/source/feta-alphabet-generic.mf +16 -0
  788. data/share/lilypond/2.24.1/fonts/source/feta-alphabet11.mf +6 -0
  789. data/share/lilypond/2.24.1/fonts/source/feta-alphabet13.mf +6 -0
  790. data/share/lilypond/2.24.1/fonts/source/feta-alphabet14.mf +6 -0
  791. data/share/lilypond/2.24.1/fonts/source/feta-alphabet16.mf +6 -0
  792. data/share/lilypond/2.24.1/fonts/source/feta-alphabet18.mf +6 -0
  793. data/share/lilypond/2.24.1/fonts/source/feta-alphabet20.mf +6 -0
  794. data/share/lilypond/2.24.1/fonts/source/feta-alphabet23.mf +6 -0
  795. data/share/lilypond/2.24.1/fonts/source/feta-alphabet26.mf +6 -0
  796. data/share/lilypond/2.24.1/fonts/source/feta-arrow.mf +114 -0
  797. data/share/lilypond/2.24.1/fonts/source/feta-arrowheads.mf +171 -0
  798. data/share/lilypond/2.24.1/fonts/source/feta-autometric.mf +303 -0
  799. data/share/lilypond/2.24.1/fonts/source/feta-braces-a.mf +6 -0
  800. data/share/lilypond/2.24.1/fonts/source/feta-braces-b.mf +6 -0
  801. data/share/lilypond/2.24.1/fonts/source/feta-braces-c.mf +6 -0
  802. data/share/lilypond/2.24.1/fonts/source/feta-braces-d.mf +6 -0
  803. data/share/lilypond/2.24.1/fonts/source/feta-braces-e.mf +6 -0
  804. data/share/lilypond/2.24.1/fonts/source/feta-braces-f.mf +6 -0
  805. data/share/lilypond/2.24.1/fonts/source/feta-braces-g.mf +6 -0
  806. data/share/lilypond/2.24.1/fonts/source/feta-braces-generic.mf +47 -0
  807. data/share/lilypond/2.24.1/fonts/source/feta-braces-h.mf +6 -0
  808. data/share/lilypond/2.24.1/fonts/source/feta-braces-i.mf +6 -0
  809. data/share/lilypond/2.24.1/fonts/source/feta-braces.mf +125 -0
  810. data/share/lilypond/2.24.1/fonts/source/feta-brackettips.mf +100 -0
  811. data/share/lilypond/2.24.1/fonts/source/feta-clefs.mf +963 -0
  812. data/share/lilypond/2.24.1/fonts/source/feta-dots.mf +37 -0
  813. data/share/lilypond/2.24.1/fonts/source/feta-dynamics.mf +891 -0
  814. data/share/lilypond/2.24.1/fonts/source/feta-flags-generic.mf +17 -0
  815. data/share/lilypond/2.24.1/fonts/source/feta-flags.mf +926 -0
  816. data/share/lilypond/2.24.1/fonts/source/feta-flags11.mf +6 -0
  817. data/share/lilypond/2.24.1/fonts/source/feta-flags13.mf +6 -0
  818. data/share/lilypond/2.24.1/fonts/source/feta-flags14.mf +6 -0
  819. data/share/lilypond/2.24.1/fonts/source/feta-flags16.mf +6 -0
  820. data/share/lilypond/2.24.1/fonts/source/feta-flags18.mf +6 -0
  821. data/share/lilypond/2.24.1/fonts/source/feta-flags20.mf +6 -0
  822. data/share/lilypond/2.24.1/fonts/source/feta-flags23.mf +6 -0
  823. data/share/lilypond/2.24.1/fonts/source/feta-flags26.mf +6 -0
  824. data/share/lilypond/2.24.1/fonts/source/feta-flats.mf +668 -0
  825. data/share/lilypond/2.24.1/fonts/source/feta-macros.mf +506 -0
  826. data/share/lilypond/2.24.1/fonts/source/feta-naturals.mf +223 -0
  827. data/share/lilypond/2.24.1/fonts/source/feta-noteheads-generic.mf +17 -0
  828. data/share/lilypond/2.24.1/fonts/source/feta-noteheads.mf +2642 -0
  829. data/share/lilypond/2.24.1/fonts/source/feta-noteheads11.mf +6 -0
  830. data/share/lilypond/2.24.1/fonts/source/feta-noteheads13.mf +6 -0
  831. data/share/lilypond/2.24.1/fonts/source/feta-noteheads14.mf +6 -0
  832. data/share/lilypond/2.24.1/fonts/source/feta-noteheads16.mf +6 -0
  833. data/share/lilypond/2.24.1/fonts/source/feta-noteheads18.mf +6 -0
  834. data/share/lilypond/2.24.1/fonts/source/feta-noteheads20.mf +6 -0
  835. data/share/lilypond/2.24.1/fonts/source/feta-noteheads23.mf +6 -0
  836. data/share/lilypond/2.24.1/fonts/source/feta-noteheads26.mf +6 -0
  837. data/share/lilypond/2.24.1/fonts/source/feta-numbers.mf +1677 -0
  838. data/share/lilypond/2.24.1/fonts/source/feta-other-generic.mf +27 -0
  839. data/share/lilypond/2.24.1/fonts/source/feta-params.mf +323 -0
  840. data/share/lilypond/2.24.1/fonts/source/feta-parenthesis.mf +63 -0
  841. data/share/lilypond/2.24.1/fonts/source/feta-pedals.mf +355 -0
  842. data/share/lilypond/2.24.1/fonts/source/feta-rests.mf +890 -0
  843. data/share/lilypond/2.24.1/fonts/source/feta-scripts.mf +2206 -0
  844. data/share/lilypond/2.24.1/fonts/source/feta-sharps.mf +524 -0
  845. data/share/lilypond/2.24.1/fonts/source/feta-sori-koron.mf +325 -0
  846. data/share/lilypond/2.24.1/fonts/source/feta-ties.mf +72 -0
  847. data/share/lilypond/2.24.1/fonts/source/feta-timesignatures.mf +119 -0
  848. data/share/lilypond/2.24.1/fonts/source/feta-trills.mf +321 -0
  849. data/share/lilypond/2.24.1/fonts/source/feta11.mf +6 -0
  850. data/share/lilypond/2.24.1/fonts/source/feta13.mf +6 -0
  851. data/share/lilypond/2.24.1/fonts/source/feta14.mf +6 -0
  852. data/share/lilypond/2.24.1/fonts/source/feta16.mf +6 -0
  853. data/share/lilypond/2.24.1/fonts/source/feta18.mf +6 -0
  854. data/share/lilypond/2.24.1/fonts/source/feta20.mf +7 -0
  855. data/share/lilypond/2.24.1/fonts/source/feta23.mf +6 -0
  856. data/share/lilypond/2.24.1/fonts/source/feta26.mf +6 -0
  857. data/share/lilypond/2.24.1/fonts/source/parmesan-accidentals.mf +483 -0
  858. data/share/lilypond/2.24.1/fonts/source/parmesan-clefs.mf +1636 -0
  859. data/share/lilypond/2.24.1/fonts/source/parmesan-custodes.mf +503 -0
  860. data/share/lilypond/2.24.1/fonts/source/parmesan-dots.mf +62 -0
  861. data/share/lilypond/2.24.1/fonts/source/parmesan-flags.mf +319 -0
  862. data/share/lilypond/2.24.1/fonts/source/parmesan-macros.mf +225 -0
  863. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads-generic.mf +16 -0
  864. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads.mf +2191 -0
  865. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads11.mf +6 -0
  866. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads13.mf +6 -0
  867. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads14.mf +6 -0
  868. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads16.mf +6 -0
  869. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads18.mf +6 -0
  870. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads20.mf +6 -0
  871. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads23.mf +6 -0
  872. data/share/lilypond/2.24.1/fonts/source/parmesan-noteheads26.mf +6 -0
  873. data/share/lilypond/2.24.1/fonts/source/parmesan-other-generic.mf +24 -0
  874. data/share/lilypond/2.24.1/fonts/source/parmesan-rests.mf +428 -0
  875. data/share/lilypond/2.24.1/fonts/source/parmesan-scripts.mf +284 -0
  876. data/share/lilypond/2.24.1/fonts/source/parmesan-timesignatures.mf +402 -0
  877. data/share/lilypond/2.24.1/fonts/source/parmesan11.mf +6 -0
  878. data/share/lilypond/2.24.1/fonts/source/parmesan13.mf +6 -0
  879. data/share/lilypond/2.24.1/fonts/source/parmesan14.mf +6 -0
  880. data/share/lilypond/2.24.1/fonts/source/parmesan16.mf +6 -0
  881. data/share/lilypond/2.24.1/fonts/source/parmesan18.mf +6 -0
  882. data/share/lilypond/2.24.1/fonts/source/parmesan20.mf +6 -0
  883. data/share/lilypond/2.24.1/fonts/source/parmesan23.mf +6 -0
  884. data/share/lilypond/2.24.1/fonts/source/parmesan26.mf +6 -0
  885. data/share/lilypond/2.24.1/fonts/svg/emmentaler-11.svg +2525 -0
  886. data/share/lilypond/2.24.1/fonts/svg/emmentaler-11.woff +0 -0
  887. data/share/lilypond/2.24.1/fonts/svg/emmentaler-13.svg +2530 -0
  888. data/share/lilypond/2.24.1/fonts/svg/emmentaler-13.woff +0 -0
  889. data/share/lilypond/2.24.1/fonts/svg/emmentaler-14.svg +2526 -0
  890. data/share/lilypond/2.24.1/fonts/svg/emmentaler-14.woff +0 -0
  891. data/share/lilypond/2.24.1/fonts/svg/emmentaler-16.svg +2523 -0
  892. data/share/lilypond/2.24.1/fonts/svg/emmentaler-16.woff +0 -0
  893. data/share/lilypond/2.24.1/fonts/svg/emmentaler-18.svg +2519 -0
  894. data/share/lilypond/2.24.1/fonts/svg/emmentaler-18.woff +0 -0
  895. data/share/lilypond/2.24.1/fonts/svg/emmentaler-20.svg +2512 -0
  896. data/share/lilypond/2.24.1/fonts/svg/emmentaler-20.woff +0 -0
  897. data/share/lilypond/2.24.1/fonts/svg/emmentaler-23.svg +2506 -0
  898. data/share/lilypond/2.24.1/fonts/svg/emmentaler-23.woff +0 -0
  899. data/share/lilypond/2.24.1/fonts/svg/emmentaler-26.svg +2510 -0
  900. data/share/lilypond/2.24.1/fonts/svg/emmentaler-26.woff +0 -0
  901. data/share/lilypond/2.24.1/fonts/svg/emmentaler-brace.svg +1757 -0
  902. data/share/lilypond/2.24.1/fonts/svg/emmentaler-brace.woff +0 -0
  903. data/share/lilypond/2.24.1/ly/Welcome_to_LilyPond.ly +45 -0
  904. data/share/lilypond/2.24.1/ly/arabic.ly +185 -0
  905. data/share/lilypond/2.24.1/ly/articulate.ly +1013 -0
  906. data/share/lilypond/2.24.1/ly/bagpipe.ly +368 -0
  907. data/share/lilypond/2.24.1/ly/base-tkit.ly +135 -0
  908. data/share/lilypond/2.24.1/ly/catalan.ly +23 -0
  909. data/share/lilypond/2.24.1/ly/chord-modifiers-init.ly +63 -0
  910. data/share/lilypond/2.24.1/ly/chord-repetition-init.ly +60 -0
  911. data/share/lilypond/2.24.1/ly/context-mods-init.ly +119 -0
  912. data/share/lilypond/2.24.1/ly/declarations-init.ly +167 -0
  913. data/share/lilypond/2.24.1/ly/deutsch.ly +23 -0
  914. data/share/lilypond/2.24.1/ly/drumpitch-init.ly +366 -0
  915. data/share/lilypond/2.24.1/ly/dynamic-scripts-init.ly +54 -0
  916. data/share/lilypond/2.24.1/ly/english.ly +23 -0
  917. data/share/lilypond/2.24.1/ly/engraver-init.ly +1619 -0
  918. data/share/lilypond/2.24.1/ly/espanol.ly +23 -0
  919. data/share/lilypond/2.24.1/ly/event-listener.ly +241 -0
  920. data/share/lilypond/2.24.1/ly/festival.ly +38 -0
  921. data/share/lilypond/2.24.1/ly/generate-documentation.ly +7 -0
  922. data/share/lilypond/2.24.1/ly/grace-init.ly +56 -0
  923. data/share/lilypond/2.24.1/ly/graphviz-init.ly +174 -0
  924. data/share/lilypond/2.24.1/ly/gregorian.ly +268 -0
  925. data/share/lilypond/2.24.1/ly/guile-debugger.ly +55 -0
  926. data/share/lilypond/2.24.1/ly/hel-arabic.ly +307 -0
  927. data/share/lilypond/2.24.1/ly/init.ly +96 -0
  928. data/share/lilypond/2.24.1/ly/italiano.ly +23 -0
  929. data/share/lilypond/2.24.1/ly/lilypond-book-preamble.ly +47 -0
  930. data/share/lilypond/2.24.1/ly/lyrics-tkit.ly +68 -0
  931. data/share/lilypond/2.24.1/ly/makam.ly +166 -0
  932. data/share/lilypond/2.24.1/ly/midi-init.ly +59 -0
  933. data/share/lilypond/2.24.1/ly/music-functions-init.ly +2254 -0
  934. data/share/lilypond/2.24.1/ly/nederlands.ly +23 -0
  935. data/share/lilypond/2.24.1/ly/norsk.ly +23 -0
  936. data/share/lilypond/2.24.1/ly/paper-defaults-init.ly +188 -0
  937. data/share/lilypond/2.24.1/ly/performer-init.ly +398 -0
  938. data/share/lilypond/2.24.1/ly/persian.ly +335 -0
  939. data/share/lilypond/2.24.1/ly/piano-tkit.ly +61 -0
  940. data/share/lilypond/2.24.1/ly/portugues.ly +23 -0
  941. data/share/lilypond/2.24.1/ly/predefined-fretboards-init.ly +78 -0
  942. data/share/lilypond/2.24.1/ly/predefined-guitar-fretboards.ly +506 -0
  943. data/share/lilypond/2.24.1/ly/predefined-guitar-ninth-fretboards.ly +75 -0
  944. data/share/lilypond/2.24.1/ly/predefined-mandolin-fretboards.ly +876 -0
  945. data/share/lilypond/2.24.1/ly/predefined-ukulele-fretboards.ly +1285 -0
  946. data/share/lilypond/2.24.1/ly/property-init.ly +858 -0
  947. data/share/lilypond/2.24.1/ly/satb.ly +214 -0
  948. data/share/lilypond/2.24.1/ly/scale-definitions-init.ly +117 -0
  949. data/share/lilypond/2.24.1/ly/scheme-sandbox.ly +39 -0
  950. data/share/lilypond/2.24.1/ly/script-init.ly +94 -0
  951. data/share/lilypond/2.24.1/ly/spanners-init.ly +146 -0
  952. data/share/lilypond/2.24.1/ly/ssaattbb.ly +335 -0
  953. data/share/lilypond/2.24.1/ly/staff-tkit.ly +182 -0
  954. data/share/lilypond/2.24.1/ly/string-tunings-init.ly +94 -0
  955. data/share/lilypond/2.24.1/ly/suomi.ly +23 -0
  956. data/share/lilypond/2.24.1/ly/svenska.ly +23 -0
  957. data/share/lilypond/2.24.1/ly/swing.ly +362 -0
  958. data/share/lilypond/2.24.1/ly/text-replacements.ly +150 -0
  959. data/share/lilypond/2.24.1/ly/titling-init.ly +150 -0
  960. data/share/lilypond/2.24.1/ly/toc-init.ly +182 -0
  961. data/share/lilypond/2.24.1/ly/turkish-makam.ly +609 -0
  962. data/share/lilypond/2.24.1/ly/vlaams.ly +23 -0
  963. data/share/lilypond/2.24.1/ly/vocal-tkit.ly +103 -0
  964. data/share/lilypond/2.24.1/ly/voice-tkit.ly +34 -0
  965. data/share/lilypond/2.24.1/ps/encodingdefs.ps +2611 -0
  966. data/share/lilypond/2.24.1/ps/lilyponddefs.ps +49 -0
  967. data/share/lilypond/2.24.1/ps/music-drawing-routines.ps +329 -0
  968. data/share/lilypond/2.24.1/python/__pycache__/book_base.cpython-310.pyc +0 -0
  969. data/share/lilypond/2.24.1/python/__pycache__/book_docbook.cpython-310.pyc +0 -0
  970. data/share/lilypond/2.24.1/python/__pycache__/book_html.cpython-310.pyc +0 -0
  971. data/share/lilypond/2.24.1/python/__pycache__/book_latex.cpython-310.pyc +0 -0
  972. data/share/lilypond/2.24.1/python/__pycache__/book_snippets.cpython-310.pyc +0 -0
  973. data/share/lilypond/2.24.1/python/__pycache__/book_texinfo.cpython-310.pyc +0 -0
  974. data/share/lilypond/2.24.1/python/__pycache__/convertrules.cpython-310.pyc +0 -0
  975. data/share/lilypond/2.24.1/python/__pycache__/langdefs.cpython-310.pyc +0 -0
  976. data/share/lilypond/2.24.1/python/__pycache__/lilylib.cpython-310.pyc +0 -0
  977. data/share/lilypond/2.24.1/python/__pycache__/midi.cpython-310.pyc +0 -0
  978. data/share/lilypond/2.24.1/python/__pycache__/musicexp.cpython-310.pyc +0 -0
  979. data/share/lilypond/2.24.1/python/__pycache__/musicxml.cpython-310.pyc +0 -0
  980. data/share/lilypond/2.24.1/python/__pycache__/musicxml2ly_conversion.cpython-310.pyc +0 -0
  981. data/share/lilypond/2.24.1/python/__pycache__/utilities.cpython-310.pyc +0 -0
  982. data/share/lilypond/2.24.1/python/book_base.py +331 -0
  983. data/share/lilypond/2.24.1/python/book_docbook.py +154 -0
  984. data/share/lilypond/2.24.1/python/book_html.py +178 -0
  985. data/share/lilypond/2.24.1/python/book_latex.py +373 -0
  986. data/share/lilypond/2.24.1/python/book_snippets.py +1052 -0
  987. data/share/lilypond/2.24.1/python/book_texinfo.py +437 -0
  988. data/share/lilypond/2.24.1/python/convertrules.py +4764 -0
  989. data/share/lilypond/2.24.1/python/langdefs.py +131 -0
  990. data/share/lilypond/2.24.1/python/lilylib.py +141 -0
  991. data/share/lilypond/2.24.1/python/midi.py +212 -0
  992. data/share/lilypond/2.24.1/python/musicexp.py +2781 -0
  993. data/share/lilypond/2.24.1/python/musicxml.py +1905 -0
  994. data/share/lilypond/2.24.1/python/musicxml2ly_conversion.py +80 -0
  995. data/share/lilypond/2.24.1/python/utilities.py +280 -0
  996. data/share/lilypond/2.24.1/scm/lily/accreg.scm +579 -0
  997. data/share/lilypond/2.24.1/scm/lily/auto-beam.scm +163 -0
  998. data/share/lilypond/2.24.1/scm/lily/autochange.scm +100 -0
  999. data/share/lilypond/2.24.1/scm/lily/backend-library.scm +593 -0
  1000. data/share/lilypond/2.24.1/scm/lily/bar-line.scm +1281 -0
  1001. data/share/lilypond/2.24.1/scm/lily/breath.scm +74 -0
  1002. data/share/lilypond/2.24.1/scm/lily/c++.scm +174 -0
  1003. data/share/lilypond/2.24.1/scm/lily/chord-entry.scm +278 -0
  1004. data/share/lilypond/2.24.1/scm/lily/chord-ignatzek-names.scm +304 -0
  1005. data/share/lilypond/2.24.1/scm/lily/chord-name.scm +217 -0
  1006. data/share/lilypond/2.24.1/scm/lily/clip-region.scm +87 -0
  1007. data/share/lilypond/2.24.1/scm/lily/color.scm +757 -0
  1008. data/share/lilypond/2.24.1/scm/lily/curried-definitions.scm +68 -0
  1009. data/share/lilypond/2.24.1/scm/lily/define-context-properties.scm +939 -0
  1010. data/share/lilypond/2.24.1/scm/lily/define-event-classes.scm +142 -0
  1011. data/share/lilypond/2.24.1/scm/lily/define-grob-interfaces.scm +640 -0
  1012. data/share/lilypond/2.24.1/scm/lily/define-grob-properties.scm +1647 -0
  1013. data/share/lilypond/2.24.1/scm/lily/define-grobs.scm +4027 -0
  1014. data/share/lilypond/2.24.1/scm/lily/define-markup-commands.scm +5737 -0
  1015. data/share/lilypond/2.24.1/scm/lily/define-music-callbacks.scm +257 -0
  1016. data/share/lilypond/2.24.1/scm/lily/define-music-display-methods.scm +1350 -0
  1017. data/share/lilypond/2.24.1/scm/lily/define-music-properties.scm +242 -0
  1018. data/share/lilypond/2.24.1/scm/lily/define-music-types.scm +983 -0
  1019. data/share/lilypond/2.24.1/scm/lily/define-note-names.scm +1421 -0
  1020. data/share/lilypond/2.24.1/scm/lily/define-stencil-commands.scm +71 -0
  1021. data/share/lilypond/2.24.1/scm/lily/define-woodwind-diagrams.scm +1215 -0
  1022. data/share/lilypond/2.24.1/scm/lily/display-lily.scm +315 -0
  1023. data/share/lilypond/2.24.1/scm/lily/display-woodwind-diagrams.scm +1985 -0
  1024. data/share/lilypond/2.24.1/scm/lily/document-backend.scm +307 -0
  1025. data/share/lilypond/2.24.1/scm/lily/document-context-mods.scm +98 -0
  1026. data/share/lilypond/2.24.1/scm/lily/document-functions.scm +169 -0
  1027. data/share/lilypond/2.24.1/scm/lily/document-identifiers.scm +76 -0
  1028. data/share/lilypond/2.24.1/scm/lily/document-markup.scm +158 -0
  1029. data/share/lilypond/2.24.1/scm/lily/document-music.scm +146 -0
  1030. data/share/lilypond/2.24.1/scm/lily/document-outside-staff-priorities.scm +40 -0
  1031. data/share/lilypond/2.24.1/scm/lily/document-paper-sizes.scm +71 -0
  1032. data/share/lilypond/2.24.1/scm/lily/document-translation.scm +318 -0
  1033. data/share/lilypond/2.24.1/scm/lily/document-type-predicates.scm +85 -0
  1034. data/share/lilypond/2.24.1/scm/lily/documentation-generate.scm +259 -0
  1035. data/share/lilypond/2.24.1/scm/lily/documentation-lib.scm +207 -0
  1036. data/share/lilypond/2.24.1/scm/lily/file-cache.scm +28 -0
  1037. data/share/lilypond/2.24.1/scm/lily/flag-styles.scm +249 -0
  1038. data/share/lilypond/2.24.1/scm/lily/font-encodings.scm +1242 -0
  1039. data/share/lilypond/2.24.1/scm/lily/font.scm +303 -0
  1040. data/share/lilypond/2.24.1/scm/lily/framework-cairo.scm +26 -0
  1041. data/share/lilypond/2.24.1/scm/lily/framework-ps.scm +896 -0
  1042. data/share/lilypond/2.24.1/scm/lily/framework-svg.scm +172 -0
  1043. data/share/lilypond/2.24.1/scm/lily/fret-diagrams.scm +1261 -0
  1044. data/share/lilypond/2.24.1/scm/lily/graphviz.scm +78 -0
  1045. data/share/lilypond/2.24.1/scm/lily/guile-debugger.scm +90 -0
  1046. data/share/lilypond/2.24.1/scm/lily/harp-pedals.scm +172 -0
  1047. data/share/lilypond/2.24.1/scm/lily/hyphenate-internal-words.scm +51 -0
  1048. data/share/lilypond/2.24.1/scm/lily/layout-beam.scm +73 -0
  1049. data/share/lilypond/2.24.1/scm/lily/layout-slur.scm +45 -0
  1050. data/share/lilypond/2.24.1/scm/lily/lily-library.scm +1446 -0
  1051. data/share/lilypond/2.24.1/scm/lily/lily-sort.scm +116 -0
  1052. data/share/lilypond/2.24.1/scm/lily/lily.scm +929 -0
  1053. data/share/lilypond/2.24.1/scm/lily/ly-syntax-constructors.scm +374 -0
  1054. data/share/lilypond/2.24.1/scm/lily/markup-macros.scm +493 -0
  1055. data/share/lilypond/2.24.1/scm/lily/markup.scm +126 -0
  1056. data/share/lilypond/2.24.1/scm/lily/midi.scm +258 -0
  1057. data/share/lilypond/2.24.1/scm/lily/modal-transforms.scm +337 -0
  1058. data/share/lilypond/2.24.1/scm/lily/music-functions.scm +2878 -0
  1059. data/share/lilypond/2.24.1/scm/lily/output-lib.scm +3377 -0
  1060. data/share/lilypond/2.24.1/scm/lily/output-ps.scm +335 -0
  1061. data/share/lilypond/2.24.1/scm/lily/output-svg.scm +684 -0
  1062. data/share/lilypond/2.24.1/scm/lily/page.scm +321 -0
  1063. data/share/lilypond/2.24.1/scm/lily/paper-system.scm +271 -0
  1064. data/share/lilypond/2.24.1/scm/lily/paper.scm +376 -0
  1065. data/share/lilypond/2.24.1/scm/lily/parser-clef.scm +205 -0
  1066. data/share/lilypond/2.24.1/scm/lily/parser-ly-from-scheme.scm +170 -0
  1067. data/share/lilypond/2.24.1/scm/lily/part-combiner.scm +998 -0
  1068. data/share/lilypond/2.24.1/scm/lily/predefined-fretboards.scm +54 -0
  1069. data/share/lilypond/2.24.1/scm/lily/ps-to-png.scm +182 -0
  1070. data/share/lilypond/2.24.1/scm/lily/scheme-engravers.scm +1813 -0
  1071. data/share/lilypond/2.24.1/scm/lily/scheme-performers.scm +126 -0
  1072. data/share/lilypond/2.24.1/scm/lily/script.scm +416 -0
  1073. data/share/lilypond/2.24.1/scm/lily/skyline.scm +25 -0
  1074. data/share/lilypond/2.24.1/scm/lily/song-util.scm +191 -0
  1075. data/share/lilypond/2.24.1/scm/lily/song.scm +853 -0
  1076. data/share/lilypond/2.24.1/scm/lily/stencil.scm +998 -0
  1077. data/share/lilypond/2.24.1/scm/lily/tablature.scm +392 -0
  1078. data/share/lilypond/2.24.1/scm/lily/time-signature-settings.scm +473 -0
  1079. data/share/lilypond/2.24.1/scm/lily/time-signature.scm +35 -0
  1080. data/share/lilypond/2.24.1/scm/lily/titling.scm +99 -0
  1081. data/share/lilypond/2.24.1/scm/lily/to-xml.scm +254 -0
  1082. data/share/lilypond/2.24.1/scm/lily/translation-functions.scm +1169 -0
  1083. data/share/lilypond/2.24.1/vim/compiler/lilypond.vim +36 -0
  1084. data/share/lilypond/2.24.1/vim/ftdetect/lilypond.vim +4 -0
  1085. data/share/lilypond/2.24.1/vim/ftplugin/lilypond.vim +91 -0
  1086. data/share/lilypond/2.24.1/vim/indent/lilypond.vim +79 -0
  1087. data/share/lilypond/2.24.1/vim/syntax/lilypond-words +1408 -0
  1088. data/share/lilypond/2.24.1/vim/syntax/lilypond-words.vim +3 -0
  1089. data/share/lilypond/2.24.1/vim/syntax/lilypond.vim +104 -0
  1090. data/share/locale/ca/LC_MESSAGES/lilypond.mo +0 -0
  1091. data/share/locale/cs/LC_MESSAGES/lilypond.mo +0 -0
  1092. data/share/locale/da/LC_MESSAGES/lilypond.mo +0 -0
  1093. data/share/locale/de/LC_MESSAGES/lilypond.mo +0 -0
  1094. data/share/locale/el/LC_MESSAGES/lilypond.mo +0 -0
  1095. data/share/locale/eo/LC_MESSAGES/lilypond.mo +0 -0
  1096. data/share/locale/es/LC_MESSAGES/lilypond.mo +0 -0
  1097. data/share/locale/fi/LC_MESSAGES/lilypond.mo +0 -0
  1098. data/share/locale/fr/LC_MESSAGES/lilypond.mo +0 -0
  1099. data/share/locale/it/LC_MESSAGES/lilypond.mo +0 -0
  1100. data/share/locale/ja/LC_MESSAGES/lilypond.mo +0 -0
  1101. data/share/locale/nl/LC_MESSAGES/lilypond.mo +0 -0
  1102. data/share/locale/ru/LC_MESSAGES/lilypond.mo +0 -0
  1103. data/share/locale/sv/LC_MESSAGES/lilypond.mo +0 -0
  1104. data/share/locale/tr/LC_MESSAGES/lilypond.mo +0 -0
  1105. data/share/locale/uk/LC_MESSAGES/lilypond.mo +0 -0
  1106. data/share/locale/vi/LC_MESSAGES/lilypond.mo +0 -0
  1107. data/share/locale/zh_CN/LC_MESSAGES/lilypond.mo +0 -0
  1108. data/share/locale/zh_TW/LC_MESSAGES/lilypond.mo +0 -0
  1109. metadata +1108 -1
@@ -0,0 +1,1149 @@
1
+ ;;; Continuation-passing style (CPS) intermediate language (IL)
2
+
3
+ ;; Copyright (C) 2013, 2014, 2015, 2017, 2018 Free Software Foundation, Inc.
4
+
5
+ ;;;; This library is free software; you can redistribute it and/or
6
+ ;;;; modify it under the terms of the GNU Lesser General Public
7
+ ;;;; License as published by the Free Software Foundation; either
8
+ ;;;; version 3 of the License, or (at your option) any later version.
9
+ ;;;;
10
+ ;;;; This library is distributed in the hope that it will be useful,
11
+ ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ ;;;; Lesser General Public License for more details.
14
+ ;;;;
15
+ ;;;; You should have received a copy of the GNU Lesser General Public
16
+ ;;;; License along with this library; if not, write to the Free Software
17
+ ;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ ;;; Commentary:
20
+ ;;;
21
+ ;;; This pass converts Tree-IL to the continuation-passing style (CPS)
22
+ ;;; language.
23
+ ;;;
24
+ ;;; CPS is a lower-level representation than Tree-IL. Converting to
25
+ ;;; CPS, beyond adding names for all control points and all values,
26
+ ;;; simplifies expressions in the following ways, among others:
27
+ ;;;
28
+ ;;; * Fixing the order of evaluation.
29
+ ;;;
30
+ ;;; * Converting assigned variables to boxed variables.
31
+ ;;;
32
+ ;;; * Requiring that Scheme's <letrec> has already been lowered to
33
+ ;;; <fix>.
34
+ ;;;
35
+ ;;; * Inlining default-value initializers into lambda-case
36
+ ;;; expressions.
37
+ ;;;
38
+ ;;; * Inlining prompt bodies.
39
+ ;;;
40
+ ;;; * Turning toplevel and module references into primcalls. This
41
+ ;;; involves explicitly modelling the "scope" of toplevel lookups
42
+ ;;; (indicating the module with respect to which toplevel bindings
43
+ ;;; are resolved).
44
+ ;;;
45
+ ;;; The utility of CPS is that it gives a name to everything: every
46
+ ;;; intermediate value, and every control point (continuation). As such
47
+ ;;; it is more verbose than Tree-IL, but at the same time more simple as
48
+ ;;; the number of concepts is reduced.
49
+ ;;;
50
+ ;;; Code:
51
+
52
+ (define-module (language tree-il compile-cps)
53
+ #:use-module (ice-9 match)
54
+ #:use-module ((srfi srfi-1) #:select (fold filter-map))
55
+ #:use-module (srfi srfi-26)
56
+ #:use-module ((system foreign) #:select (make-pointer pointer->scm))
57
+ #:use-module (language cps)
58
+ #:use-module (language cps utils)
59
+ #:use-module (language cps with-cps)
60
+ #:use-module (language cps primitives)
61
+ #:use-module (language tree-il analyze)
62
+ #:use-module (language tree-il optimize)
63
+ #:use-module (language tree-il)
64
+ #:use-module (language cps intmap)
65
+ #:export (compile-cps))
66
+
67
+ ;;; Guile's semantics are that a toplevel lambda captures a reference on
68
+ ;;; the current module, and that all contained lambdas use that module
69
+ ;;; to resolve toplevel variables. This parameter tracks whether or not
70
+ ;;; we are in a toplevel lambda. If we are in a lambda, the parameter
71
+ ;;; is bound to a fresh name identifying the module that was current
72
+ ;;; when the toplevel lambda is defined.
73
+ ;;;
74
+ ;;; This is more complicated than it need be. Ideally we should resolve
75
+ ;;; all toplevel bindings to bindings from specific modules, unless the
76
+ ;;; binding is unbound. This is always valid if the compilation unit
77
+ ;;; sets the module explicitly, as when compiling a module, but it
78
+ ;;; doesn't work for files auto-compiled for use with `load'.
79
+ ;;;
80
+ (define current-topbox-scope (make-parameter #f))
81
+ (define scope-counter (make-parameter #f))
82
+
83
+ (define (fresh-scope-id)
84
+ (let ((scope-id (scope-counter)))
85
+ (scope-counter (1+ scope-id))
86
+ scope-id))
87
+
88
+ (define (toplevel-box cps src name bound? val-proc)
89
+ (define (lookup cps name bound? k)
90
+ (match (current-topbox-scope)
91
+ (#f
92
+ (with-cps cps
93
+ (build-term ($continue k src
94
+ ($primcall 'resolve (name bound?))))))
95
+ (scope-id
96
+ (with-cps cps
97
+ ($ (with-cps-constants ((scope scope-id))
98
+ (build-term
99
+ ($continue k src
100
+ ($primcall 'cached-toplevel-box (scope name bound?))))))))))
101
+ (with-cps cps
102
+ (letv box)
103
+ (let$ body (val-proc box))
104
+ (letk kbox ($kargs ('box) (box) ,body))
105
+ ($ (with-cps-constants ((name name)
106
+ (bound? bound?))
107
+ ($ (lookup name bound? kbox))))))
108
+
109
+ (define (module-box cps src module name public? bound? val-proc)
110
+ (with-cps cps
111
+ (letv box)
112
+ (let$ body (val-proc box))
113
+ (letk kbox ($kargs ('box) (box) ,body))
114
+ ($ (with-cps-constants ((module module)
115
+ (name name)
116
+ (public? public?)
117
+ (bound? bound?))
118
+ (build-term ($continue kbox src
119
+ ($primcall 'cached-module-box
120
+ (module name public? bound?))))))))
121
+
122
+ (define (capture-toplevel-scope cps src scope-id k)
123
+ (with-cps cps
124
+ (letv module)
125
+ (let$ body (with-cps-constants ((scope scope-id))
126
+ (build-term
127
+ ($continue k src
128
+ ($primcall 'cache-current-module! (module scope))))))
129
+ (letk kmodule ($kargs ('module) (module) ,body))
130
+ (build-term ($continue kmodule src
131
+ ($primcall 'current-module ())))))
132
+
133
+ (define (fold-formals proc seed arity gensyms inits)
134
+ (match arity
135
+ (($ $arity req opt rest kw allow-other-keys?)
136
+ (let ()
137
+ (define (fold-req names gensyms seed)
138
+ (match names
139
+ (() (fold-opt opt gensyms inits seed))
140
+ ((name . names)
141
+ (proc name (car gensyms) #f
142
+ (fold-req names (cdr gensyms) seed)))))
143
+ (define (fold-opt names gensyms inits seed)
144
+ (match names
145
+ (() (fold-rest rest gensyms inits seed))
146
+ ((name . names)
147
+ (proc name (car gensyms) (car inits)
148
+ (fold-opt names (cdr gensyms) (cdr inits) seed)))))
149
+ (define (fold-rest rest gensyms inits seed)
150
+ (match rest
151
+ (#f (fold-kw kw gensyms inits seed))
152
+ (name (proc name (car gensyms) #f
153
+ (fold-kw kw (cdr gensyms) inits seed)))))
154
+ (define (fold-kw kw gensyms inits seed)
155
+ (match kw
156
+ (()
157
+ (unless (null? gensyms)
158
+ (error "too many gensyms"))
159
+ (unless (null? inits)
160
+ (error "too many inits"))
161
+ seed)
162
+ (((key name var) . kw)
163
+ ;; Could be that var is not a gensym any more.
164
+ (when (symbol? var)
165
+ (unless (eq? var (car gensyms))
166
+ (error "unexpected keyword arg order")))
167
+ (proc name (car gensyms) (car inits)
168
+ (fold-kw kw (cdr gensyms) (cdr inits) seed)))))
169
+ (fold-req req gensyms seed)))))
170
+
171
+ (define (unbound? cps src var kt kf)
172
+ (define tc8-iflag 4)
173
+ (define unbound-val 9)
174
+ (define unbound-bits (logior (ash unbound-val 8) tc8-iflag))
175
+ (with-cps cps
176
+ ($ (with-cps-constants ((unbound (pointer->scm
177
+ (make-pointer unbound-bits))))
178
+ (build-term ($continue kf src
179
+ ($branch kt ($primcall 'eq? (var unbound)))))))))
180
+
181
+ (define (init-default-value cps name sym subst init body)
182
+ (match (hashq-ref subst sym)
183
+ ((orig-var subst-var box?)
184
+ (let ((src (tree-il-src init)))
185
+ (define (maybe-box cps k make-body)
186
+ (if box?
187
+ (with-cps cps
188
+ (letv phi)
189
+ (letk kbox ($kargs (name) (phi)
190
+ ($continue k src ($primcall 'box (phi)))))
191
+ ($ (make-body kbox)))
192
+ (make-body cps k)))
193
+ (with-cps cps
194
+ (letk knext ($kargs (name) (subst-var) ,body))
195
+ ($ (maybe-box
196
+ knext
197
+ (lambda (cps k)
198
+ (with-cps cps
199
+ (letk kbound ($kargs () () ($continue k src
200
+ ($values (orig-var)))))
201
+ (letv val rest)
202
+ (letk krest ($kargs (name 'rest) (val rest)
203
+ ($continue k src ($values (val)))))
204
+ (letk kreceive ($kreceive (list name) 'rest krest))
205
+ (let$ init (convert init kreceive subst))
206
+ (letk kunbound ($kargs () () ,init))
207
+ ($ (unbound? src orig-var kunbound kbound)))))))))))
208
+
209
+ ;;; The conversion from Tree-IL to CPS essentially wraps every
210
+ ;;; expression in a $kreceive, which models the Tree-IL semantics that
211
+ ;;; extra values are simply truncated. In CPS, this means that the
212
+ ;;; $kreceive has a rest argument after the required arguments, if any,
213
+ ;;; and that the rest argument is unused.
214
+ ;;;
215
+ ;;; All CPS expressions that can return a variable number of values
216
+ ;;; (i.e., $call and $abort) must continue to $kreceive, which checks
217
+ ;;; the return arity and on success passes the parsed values along to a
218
+ ;;; $kargs. If the $call or $abort is in tail position they continue to
219
+ ;;; $ktail instead, and then the values are parsed by the $kreceive of
220
+ ;;; the non-tail caller.
221
+ ;;;
222
+ ;;; Other CPS terms like $values, $const, and the like all have a
223
+ ;;; specific return arity, and must continue to $kargs instead of
224
+ ;;; $kreceive or $ktail. This allows the compiler to reason precisely
225
+ ;;; about their result values. To make sure that this is the case,
226
+ ;;; whenever the CPS conversion would reify one of these terms it needs
227
+ ;;; to ensure that the continuation actually accepts the return arity of
228
+ ;;; the primcall.
229
+ ;;;
230
+ ;;; Some Tree-IL primcalls residualize CPS primcalls that return zero
231
+ ;;; values, for example box-set!. In this case the Tree-IL semantics
232
+ ;;; are that the result of the expression is the undefined value. That
233
+ ;;; is to say, the result of this expression is #t:
234
+ ;;;
235
+ ;;; (let ((x 30)) (eq? (set! x 10) (if #f #f)))
236
+ ;;;
237
+ ;;; So in the case that the continuation expects a value but the
238
+ ;;; primcall produces zero values, we insert the "unspecified" value.
239
+ ;;;
240
+ (define (adapt-arity cps k src nvals)
241
+ (match nvals
242
+ (0
243
+ ;; As mentioned above, in the Tree-IL semantics the primcall
244
+ ;; produces the unspecified value, but in CPS it produces no
245
+ ;; values. Therefore we plug the unspecified value into the
246
+ ;; continuation.
247
+ (match (intmap-ref cps k)
248
+ (($ $ktail)
249
+ (with-cps cps
250
+ (let$ body (with-cps-constants ((unspecified *unspecified*))
251
+ (build-term
252
+ ($continue k src ($values (unspecified))))))
253
+ (letk kvoid ($kargs () () ,body))
254
+ kvoid))
255
+ (($ $kargs ()) (with-cps cps k))
256
+ (($ $kreceive arity kargs)
257
+ (match arity
258
+ (($ $arity () () (not #f) () #f)
259
+ (with-cps cps
260
+ (letk kvoid ($kargs () () ($continue kargs src ($const '()))))
261
+ kvoid))
262
+ (($ $arity (_) () #f () #f)
263
+ (with-cps cps
264
+ (letk kvoid ($kargs () ()
265
+ ($continue kargs src ($const *unspecified*))))
266
+ kvoid))
267
+ (($ $arity (_) () _ () #f)
268
+ (with-cps cps
269
+ (let$ void (with-cps-constants ((unspecified *unspecified*)
270
+ (rest '()))
271
+ (build-term
272
+ ($continue kargs src
273
+ ($values (unspecified rest))))))
274
+ (letk kvoid ($kargs () () ,void))
275
+ kvoid))
276
+ (_
277
+ ;; Arity mismatch. Serialize a values call.
278
+ (with-cps cps
279
+ (let$ void (with-cps-constants ((unspecified *unspecified*))
280
+ (build-term
281
+ ($continue k src
282
+ ($primcall 'values (unspecified))))))
283
+ (letk kvoid ($kargs () () ,void))
284
+ kvoid))))))
285
+ (1
286
+ (match (intmap-ref cps k)
287
+ (($ $ktail)
288
+ (with-cps cps
289
+ (letv val)
290
+ (letk kval ($kargs ('val) (val)
291
+ ($continue k src ($values (val)))))
292
+ kval))
293
+ (($ $kargs (_)) (with-cps cps k))
294
+ (($ $kreceive arity kargs)
295
+ (match arity
296
+ (($ $arity () () (not #f) () #f)
297
+ (with-cps cps
298
+ (letv val)
299
+ (let$ body (with-cps-constants ((nil '()))
300
+ (build-term
301
+ ($continue kargs src ($primcall 'cons (val nil))))))
302
+ (letk kval ($kargs ('val) (val) ,body))
303
+ kval))
304
+ (($ $arity (_) () #f () #f)
305
+ (with-cps cps
306
+ kargs))
307
+ (($ $arity (_) () _ () #f)
308
+ (with-cps cps
309
+ (letv val)
310
+ (let$ body (with-cps-constants ((rest '()))
311
+ (build-term
312
+ ($continue kargs src ($values (val rest))))))
313
+ (letk kval ($kargs ('val) (val) ,body))
314
+ kval))
315
+ (_
316
+ ;; Arity mismatch. Serialize a values call.
317
+ (with-cps cps
318
+ (letv val)
319
+ (letk kval ($kargs ('val) (val)
320
+ ($continue k src
321
+ ($primcall 'values (val)))))
322
+ kval))))))))
323
+
324
+ ;; cps exp k-name alist -> cps term
325
+ (define (convert cps exp k subst)
326
+ (define (zero-valued? exp)
327
+ (match exp
328
+ ((or ($ <module-set>) ($ <toplevel-set>) ($ <toplevel-define>)
329
+ ($ <lexical-set>))
330
+ #t)
331
+ (($ <let> src names syms vals body) (zero-valued? body))
332
+ ;; Can't use <fix> here as the hack that <fix> uses to convert its
333
+ ;; functions relies on continuation being single-valued.
334
+ ;; (($ <fix> src names syms vals body) (zero-valued? body))
335
+ (($ <let-values> src exp body) (zero-valued? body))
336
+ (($ <seq> src head tail) (zero-valued? tail))
337
+ (($ <primcall> src name args)
338
+ (match (prim-instruction name)
339
+ (#f #f)
340
+ (inst
341
+ (match (prim-arity inst)
342
+ ((out . in)
343
+ (and (eqv? out 0)
344
+ (eqv? in (length args))))))))
345
+ (_ #f)))
346
+ (define (single-valued? exp)
347
+ (match exp
348
+ ((or ($ <void>) ($ <const>) ($ <primitive-ref>) ($ <module-ref>)
349
+ ($ <toplevel-ref>) ($ <lambda>))
350
+ #t)
351
+ (($ <let> src names syms vals body) (single-valued? body))
352
+ (($ <fix> src names syms vals body) (single-valued? body))
353
+ (($ <let-values> src exp body) (single-valued? body))
354
+ (($ <seq> src head tail) (single-valued? tail))
355
+ (($ <primcall> src name args)
356
+ (match (prim-instruction name)
357
+ (#f #f)
358
+ (inst
359
+ (match (prim-arity inst)
360
+ ((out . in)
361
+ (and (eqv? out 1)
362
+ (eqv? in (length args))))))))
363
+ (_ #f)))
364
+ ;; exp (v-name -> term) -> term
365
+ (define (convert-arg cps exp k)
366
+ (match exp
367
+ (($ <lexical-ref> src name sym)
368
+ (match (hashq-ref subst sym)
369
+ ((orig-var box #t)
370
+ (with-cps cps
371
+ (letv unboxed)
372
+ (let$ body (k unboxed))
373
+ (letk kunboxed ($kargs ('unboxed) (unboxed) ,body))
374
+ (build-term ($continue kunboxed src ($primcall 'box-ref (box))))))
375
+ ((orig-var subst-var #f) (k cps subst-var))
376
+ (var (k cps var))))
377
+ ((? single-valued?)
378
+ (with-cps cps
379
+ (letv arg)
380
+ (let$ body (k arg))
381
+ (letk karg ($kargs ('arg) (arg) ,body))
382
+ ($ (convert exp karg subst))))
383
+ (_
384
+ (with-cps cps
385
+ (letv arg rest)
386
+ (let$ body (k arg))
387
+ (letk karg ($kargs ('arg 'rest) (arg rest) ,body))
388
+ (letk kreceive ($kreceive '(arg) 'rest karg))
389
+ ($ (convert exp kreceive subst))))))
390
+ ;; (exp ...) ((v-name ...) -> term) -> term
391
+ (define (convert-args cps exps k)
392
+ (match exps
393
+ (() (k cps '()))
394
+ ((exp . exps)
395
+ (convert-arg cps exp
396
+ (lambda (cps name)
397
+ (convert-args cps exps
398
+ (lambda (cps names)
399
+ (k cps (cons name names)))))))))
400
+ (define (box-bound-var cps name sym body)
401
+ (match (hashq-ref subst sym)
402
+ ((orig-var subst-var #t)
403
+ (with-cps cps
404
+ (letk k ($kargs (name) (subst-var) ,body))
405
+ (build-term ($continue k #f ($primcall 'box (orig-var))))))
406
+ (else
407
+ (with-cps cps body))))
408
+ (define (box-bound-vars cps names syms body)
409
+ (match (vector names syms)
410
+ (#((name . names) (sym . syms))
411
+ (with-cps cps
412
+ (let$ body (box-bound-var name sym body))
413
+ ($ (box-bound-vars names syms body))))
414
+ (#(() ()) (with-cps cps body))))
415
+ (define (bound-var sym)
416
+ (match (hashq-ref subst sym)
417
+ ((var . _) var)
418
+ ((? exact-integer? var) var)))
419
+
420
+ (match exp
421
+ (($ <lexical-ref> src name sym)
422
+ (with-cps cps
423
+ (let$ k (adapt-arity k src 1))
424
+ (rewrite-term (hashq-ref subst sym)
425
+ ((orig-var box #t) ($continue k src ($primcall 'box-ref (box))))
426
+ ((orig-var subst-var #f) ($continue k src ($values (subst-var))))
427
+ (var ($continue k src ($values (var)))))))
428
+
429
+ (($ <void> src)
430
+ (with-cps cps
431
+ (let$ k (adapt-arity k src 1))
432
+ (build-term ($continue k src ($const *unspecified*)))))
433
+
434
+ (($ <const> src exp)
435
+ (with-cps cps
436
+ (let$ k (adapt-arity k src 1))
437
+ (build-term ($continue k src ($const exp)))))
438
+
439
+ (($ <primitive-ref> src name)
440
+ (with-cps cps
441
+ (let$ k (adapt-arity k src 1))
442
+ (build-term ($continue k src ($prim name)))))
443
+
444
+ (($ <lambda> fun-src meta body)
445
+ (let ()
446
+ (define (convert-clauses cps body ktail)
447
+ (match body
448
+ (#f (values cps #f))
449
+ (($ <lambda-case> src req opt rest kw inits gensyms body alternate)
450
+ (let* ((arity (make-$arity req (or opt '()) rest
451
+ (map (match-lambda
452
+ ((kw name sym)
453
+ (list kw name (bound-var sym))))
454
+ (if kw (cdr kw) '()))
455
+ (and kw (car kw))))
456
+ (names (fold-formals (lambda (name sym init names)
457
+ (cons name names))
458
+ '()
459
+ arity gensyms inits)))
460
+ (define (fold-formals* cps f seed arity gensyms inits)
461
+ (match (fold-formals
462
+ (lambda (name sym init cps+seed)
463
+ (match cps+seed
464
+ ((cps . seed)
465
+ (call-with-values (lambda ()
466
+ (f cps name sym init seed))
467
+ (lambda (cps seed) (cons cps seed))))))
468
+ (cons cps seed) arity gensyms inits)
469
+ ((cps . seed) (values cps seed))))
470
+ (with-cps cps
471
+ (let$ kalt (convert-clauses alternate ktail))
472
+ (let$ body (convert body ktail subst))
473
+ (let$ body
474
+ (fold-formals*
475
+ (lambda (cps name sym init body)
476
+ (if init
477
+ (init-default-value cps name sym subst init body)
478
+ (box-bound-var cps name sym body)))
479
+ body arity gensyms inits))
480
+ (letk kargs ($kargs names (map bound-var gensyms) ,body))
481
+ (letk kclause ($kclause ,arity kargs kalt))
482
+ kclause)))))
483
+ (if (current-topbox-scope)
484
+ (with-cps cps
485
+ (letv self)
486
+ (letk ktail ($ktail))
487
+ (let$ kclause (convert-clauses body ktail))
488
+ (letk kfun ($kfun fun-src meta self ktail kclause))
489
+ (let$ k (adapt-arity k fun-src 1))
490
+ (build-term ($continue k fun-src ($fun kfun))))
491
+ (let ((scope-id (fresh-scope-id)))
492
+ (with-cps cps
493
+ (let$ body ((lambda (cps)
494
+ (parameterize ((current-topbox-scope scope-id))
495
+ (convert cps exp k subst)))))
496
+ (letk kscope ($kargs () () ,body))
497
+ ($ (capture-toplevel-scope fun-src scope-id kscope)))))))
498
+
499
+ (($ <module-ref> src mod name public?)
500
+ (module-box
501
+ cps src mod name public? #t
502
+ (lambda (cps box)
503
+ (with-cps cps
504
+ (let$ k (adapt-arity k src 1))
505
+ (build-term ($continue k src ($primcall 'box-ref (box))))))))
506
+
507
+ (($ <module-set> src mod name public? exp)
508
+ (convert-arg cps exp
509
+ (lambda (cps val)
510
+ (module-box
511
+ cps src mod name public? #t
512
+ (lambda (cps box)
513
+ (with-cps cps
514
+ (let$ k (adapt-arity k src 0))
515
+ (build-term
516
+ ($continue k src ($primcall 'box-set! (box val))))))))))
517
+
518
+ (($ <toplevel-ref> src name)
519
+ (toplevel-box
520
+ cps src name #t
521
+ (lambda (cps box)
522
+ (with-cps cps
523
+ (let$ k (adapt-arity k src 1))
524
+ (build-term ($continue k src ($primcall 'box-ref (box))))))))
525
+
526
+ (($ <toplevel-set> src name exp)
527
+ (convert-arg cps exp
528
+ (lambda (cps val)
529
+ (toplevel-box
530
+ cps src name #f
531
+ (lambda (cps box)
532
+ (with-cps cps
533
+ (let$ k (adapt-arity k src 0))
534
+ (build-term
535
+ ($continue k src ($primcall 'box-set! (box val))))))))))
536
+
537
+ (($ <toplevel-define> src name exp)
538
+ (convert-arg cps exp
539
+ (lambda (cps val)
540
+ (with-cps cps
541
+ (let$ k (adapt-arity k src 0))
542
+ (letv box)
543
+ (letk kset ($kargs ('box) (box)
544
+ ($continue k src ($primcall 'box-set! (box val)))))
545
+ ($ (with-cps-constants ((name name))
546
+ (build-term
547
+ ($continue kset src ($primcall 'define! (name))))))))))
548
+
549
+ (($ <call> src proc args)
550
+ (convert-args cps (cons proc args)
551
+ (match-lambda*
552
+ ((cps (proc . args))
553
+ (with-cps cps
554
+ (build-term ($continue k src ($call proc args))))))))
555
+
556
+ (($ <primcall> src name args)
557
+ (cond
558
+ ((eq? name 'equal?)
559
+ (convert-args cps args
560
+ (lambda (cps args)
561
+ (with-cps cps
562
+ (let$ k* (adapt-arity k src 1))
563
+ (letk kt ($kargs () () ($continue k* src ($const #t))))
564
+ (letk kf* ($kargs () ()
565
+ ;; Here we continue to the original $kreceive
566
+ ;; or $ktail, as equal? doesn't have a VM op.
567
+ ($continue k src ($primcall 'equal? args))))
568
+ (build-term ($continue kf* src
569
+ ($branch kt ($primcall 'eqv? args))))))))
570
+ ((branching-primitive? name)
571
+ (convert-args cps args
572
+ (lambda (cps args)
573
+ (with-cps cps
574
+ (let$ k (adapt-arity k src 1))
575
+ (letk kt ($kargs () () ($continue k src ($const #t))))
576
+ (letk kf ($kargs () () ($continue k src ($const #f))))
577
+ (build-term ($continue kf src
578
+ ($branch kt ($primcall name args))))))))
579
+ ((and (eq? name 'not) (match args ((_) #t) (_ #f)))
580
+ (convert-args cps args
581
+ (lambda (cps args)
582
+ (with-cps cps
583
+ (let$ k (adapt-arity k src 1))
584
+ (letk kt ($kargs () () ($continue k src ($const #f))))
585
+ (letk kf ($kargs () () ($continue k src ($const #t))))
586
+ (build-term ($continue kf src
587
+ ($branch kt ($values args))))))))
588
+ ((and (eq? name 'list)
589
+ (and-map (match-lambda
590
+ ((or ($ <const>)
591
+ ($ <void>)
592
+ ($ <lambda>)
593
+ ($ <lexical-ref>)) #t)
594
+ (_ #f))
595
+ args))
596
+ ;; See note below in `canonicalize' about `vector'. The same
597
+ ;; thing applies to `list'.
598
+ (with-cps cps
599
+ (let$ k (adapt-arity k src 1))
600
+ ($ ((lambda (cps)
601
+ (let lp ((cps cps) (args args) (k k))
602
+ (match args
603
+ (()
604
+ (with-cps cps
605
+ (build-term ($continue k src ($const '())))))
606
+ ((arg . args)
607
+ (with-cps cps
608
+ (letv tail)
609
+ (let$ body (convert-arg arg
610
+ (lambda (cps head)
611
+ (with-cps cps
612
+ (build-term
613
+ ($continue k src
614
+ ($primcall 'cons (head tail))))))))
615
+ (letk ktail ($kargs ('tail) (tail) ,body))
616
+ ($ (lp args ktail)))))))))))
617
+ ((prim-instruction name)
618
+ => (lambda (instruction)
619
+ (define (box+adapt-arity cps k src out)
620
+ (case instruction
621
+ ((bv-f32-ref bv-f64-ref)
622
+ (with-cps cps
623
+ (letv f64)
624
+ (let$ k (adapt-arity k src out))
625
+ (letk kbox ($kargs ('f64) (f64)
626
+ ($continue k src ($primcall 'f64->scm (f64)))))
627
+ kbox))
628
+ ((char->integer
629
+ string-length vector-length
630
+ bv-length bv-u8-ref bv-u16-ref bv-u32-ref bv-u64-ref)
631
+ (with-cps cps
632
+ (letv u64)
633
+ (let$ k (adapt-arity k src out))
634
+ (letk kbox ($kargs ('u64) (u64)
635
+ ($continue k src ($primcall 'u64->scm (u64)))))
636
+ kbox))
637
+ ((bv-s8-ref bv-s16-ref bv-s32-ref bv-s64-ref)
638
+ (with-cps cps
639
+ (letv s64)
640
+ (let$ k (adapt-arity k src out))
641
+ (letk kbox ($kargs ('s64) (s64)
642
+ ($continue k src ($primcall 's64->scm (s64)))))
643
+ kbox))
644
+ (else
645
+ (adapt-arity cps k src out))))
646
+ (define (unbox-arg cps arg unbox-op have-arg)
647
+ (with-cps cps
648
+ (letv unboxed)
649
+ (let$ body (have-arg unboxed))
650
+ (letk kunboxed ($kargs ('unboxed) (unboxed) ,body))
651
+ (build-term
652
+ ($continue kunboxed src ($primcall unbox-op (arg))))))
653
+ (define (unbox-args cps args have-args)
654
+ (case instruction
655
+ ((bv-f32-ref bv-f64-ref
656
+ bv-s8-ref bv-s16-ref bv-s32-ref bv-s64-ref
657
+ bv-u8-ref bv-u16-ref bv-u32-ref bv-u64-ref)
658
+ (match args
659
+ ((bv idx)
660
+ (unbox-arg
661
+ cps idx 'scm->u64
662
+ (lambda (cps idx)
663
+ (have-args cps (list bv idx)))))))
664
+ ((bv-f32-set! bv-f64-set!)
665
+ (match args
666
+ ((bv idx val)
667
+ (unbox-arg
668
+ cps idx 'scm->u64
669
+ (lambda (cps idx)
670
+ (unbox-arg
671
+ cps val 'scm->f64
672
+ (lambda (cps val)
673
+ (have-args cps (list bv idx val)))))))))
674
+ ((bv-s8-set! bv-s16-set! bv-s32-set! bv-s64-set!)
675
+ (match args
676
+ ((bv idx val)
677
+ (unbox-arg
678
+ cps idx 'scm->u64
679
+ (lambda (cps idx)
680
+ (unbox-arg
681
+ cps val 'scm->s64
682
+ (lambda (cps val)
683
+ (have-args cps (list bv idx val)))))))))
684
+ ((bv-u8-set! bv-u16-set! bv-u32-set! bv-u64-set!)
685
+ (match args
686
+ ((bv idx val)
687
+ (unbox-arg
688
+ cps idx 'scm->u64
689
+ (lambda (cps idx)
690
+ (unbox-arg
691
+ cps val 'scm->u64
692
+ (lambda (cps val)
693
+ (have-args cps (list bv idx val)))))))))
694
+ ((vector-ref struct-ref string-ref)
695
+ (match args
696
+ ((obj idx)
697
+ (unbox-arg
698
+ cps idx 'scm->u64
699
+ (lambda (cps idx)
700
+ (have-args cps (list obj idx)))))))
701
+ ((vector-set! struct-set! string-set!)
702
+ (match args
703
+ ((obj idx val)
704
+ (unbox-arg
705
+ cps idx 'scm->u64
706
+ (lambda (cps idx)
707
+ (have-args cps (list obj idx val)))))))
708
+ ((make-vector)
709
+ (match args
710
+ ((length init)
711
+ (unbox-arg
712
+ cps length 'scm->u64
713
+ (lambda (cps length)
714
+ (have-args cps (list length init)))))))
715
+ ((allocate-struct)
716
+ (match args
717
+ ((vtable nfields)
718
+ (unbox-arg
719
+ cps nfields 'scm->u64
720
+ (lambda (cps nfields)
721
+ (have-args cps (list vtable nfields)))))))
722
+ ((integer->char)
723
+ (match args
724
+ ((integer)
725
+ (unbox-arg
726
+ cps integer 'scm->u64
727
+ (lambda (cps integer)
728
+ (have-args cps (list integer)))))))
729
+ (else (have-args cps args))))
730
+ (convert-args cps args
731
+ (lambda (cps args)
732
+ ;; Tree-IL primcalls are sloppy, in that it could be
733
+ ;; that they are called with too many or too few
734
+ ;; arguments. In CPS we are more strict and only
735
+ ;; residualize a $primcall if the argument count
736
+ ;; matches.
737
+ (match (prim-arity instruction)
738
+ ((out . in)
739
+ (if (= in (length args))
740
+ (with-cps cps
741
+ (let$ k (box+adapt-arity k src out))
742
+ ($ (unbox-args
743
+ args
744
+ (lambda (cps args)
745
+ (with-cps cps
746
+ (build-term
747
+ ($continue k src
748
+ ($primcall instruction args))))))))
749
+ (with-cps cps
750
+ (letv prim)
751
+ (letk kprim ($kargs ('prim) (prim)
752
+ ($continue k src ($call prim args))))
753
+ (build-term ($continue kprim src ($prim name)))))))))))
754
+ (else
755
+ ;; We have something that's a primcall for Tree-IL but not for
756
+ ;; CPS, which will get compiled as a call and so the right thing
757
+ ;; to do is to continue to the given $ktail or $kreceive.
758
+ (convert-args cps args
759
+ (lambda (cps args)
760
+ (with-cps cps
761
+ (build-term
762
+ ($continue k src ($primcall name args)))))))))
763
+
764
+ ;; Prompts with inline handlers.
765
+ (($ <prompt> src escape-only? tag body
766
+ ($ <lambda> hsrc hmeta
767
+ ($ <lambda-case> _ hreq #f hrest #f () hsyms hbody #f)))
768
+ ;; Handler:
769
+ ;; khargs: check args returned to handler, -> khbody
770
+ ;; khbody: the handler, -> k
771
+ ;;
772
+ ;; Post-body:
773
+ ;; krest: collect return vals from body to list, -> kpop
774
+ ;; kpop: pop the prompt, -> kprim
775
+ ;; kprim: load the values primitive, -> kret
776
+ ;; kret: (apply values rvals), -> k
777
+ ;;
778
+ ;; Escape prompts evaluate the body with the continuation of krest.
779
+ ;; Otherwise we do a no-inline call to body, continuing to krest.
780
+ (convert-arg cps tag
781
+ (lambda (cps tag)
782
+ (let ((hnames (append hreq (if hrest (list hrest) '())))
783
+ (bound-vars (map bound-var hsyms)))
784
+ (define (convert-body cps khargs krest)
785
+ (if escape-only?
786
+ (with-cps cps
787
+ (let$ body (convert body krest subst))
788
+ (letk kbody ($kargs () () ,body))
789
+ (build-term ($continue kbody src ($prompt #t tag khargs))))
790
+ (convert-arg cps body
791
+ (lambda (cps thunk)
792
+ (with-cps cps
793
+ (letk kbody ($kargs () ()
794
+ ($continue krest (tree-il-src body)
795
+ ($primcall 'call-thunk/no-inline
796
+ (thunk)))))
797
+ (build-term ($continue kbody (tree-il-src body)
798
+ ($prompt #f tag khargs))))))))
799
+ (with-cps cps
800
+ (letv prim vals)
801
+ (let$ hbody (convert hbody k subst))
802
+ (let$ hbody (box-bound-vars hnames hsyms hbody))
803
+ (letk khbody ($kargs hnames bound-vars ,hbody))
804
+ (letk khargs ($kreceive hreq hrest khbody))
805
+ (letk kprim ($kargs ('prim) (prim)
806
+ ($continue k src ($primcall 'apply (prim vals)))))
807
+ (letk kret ($kargs () ()
808
+ ($continue kprim src ($prim 'values))))
809
+ (letk kpop ($kargs ('rest) (vals)
810
+ ($continue kret src ($primcall 'unwind ()))))
811
+ ;; FIXME: Attach hsrc to $kreceive.
812
+ (letk krest ($kreceive '() 'rest kpop))
813
+ ($ (convert-body khargs krest)))))))
814
+
815
+ (($ <abort> src tag args ($ <const> _ ()))
816
+ (convert-args cps (cons tag args)
817
+ (lambda (cps args*)
818
+ (with-cps cps
819
+ (build-term
820
+ ($continue k src ($primcall 'abort-to-prompt args*)))))))
821
+
822
+ (($ <abort> src tag args tail)
823
+ (convert-args cps
824
+ (append (list (make-primitive-ref #f 'abort-to-prompt) tag)
825
+ args
826
+ (list tail))
827
+ (lambda (cps args*)
828
+ (with-cps cps
829
+ (build-term ($continue k src ($primcall 'apply args*)))))))
830
+
831
+ (($ <conditional> src test consequent alternate)
832
+ (define (convert-test cps test kt kf)
833
+ (match test
834
+ (($ <primcall> src (? branching-primitive? name) args)
835
+ (convert-args cps args
836
+ (lambda (cps args)
837
+ (with-cps cps
838
+ (build-term ($continue kf src
839
+ ($branch kt ($primcall name args))))))))
840
+ (($ <conditional> src test consequent alternate)
841
+ (with-cps cps
842
+ (let$ t (convert-test consequent kt kf))
843
+ (let$ f (convert-test alternate kt kf))
844
+ (letk kt* ($kargs () () ,t))
845
+ (letk kf* ($kargs () () ,f))
846
+ ($ (convert-test test kt* kf*))))
847
+ (_ (convert-arg cps test
848
+ (lambda (cps test)
849
+ (with-cps cps
850
+ (build-term ($continue kf src
851
+ ($branch kt ($values (test)))))))))))
852
+ (with-cps cps
853
+ (let$ t (convert consequent k subst))
854
+ (let$ f (convert alternate k subst))
855
+ (letk kt ($kargs () () ,t))
856
+ (letk kf ($kargs () () ,f))
857
+ ($ (convert-test test kt kf))))
858
+
859
+ (($ <lexical-set> src name gensym exp)
860
+ (convert-arg cps exp
861
+ (lambda (cps exp)
862
+ (match (hashq-ref subst gensym)
863
+ ((orig-var box #t)
864
+ (with-cps cps
865
+ (let$ k (adapt-arity k src 0))
866
+ (build-term
867
+ ($continue k src ($primcall 'box-set! (box exp))))))))))
868
+
869
+ (($ <seq> src head tail)
870
+ (if (zero-valued? head)
871
+ (with-cps cps
872
+ (let$ tail (convert tail k subst))
873
+ (letk kseq ($kargs () () ,tail))
874
+ ($ (convert head kseq subst)))
875
+ (with-cps cps
876
+ (let$ tail (convert tail k subst))
877
+ (letv vals)
878
+ (letk kseq ($kargs ('vals) (vals) ,tail))
879
+ (letk kreceive ($kreceive '() 'vals kseq))
880
+ ($ (convert head kreceive subst)))))
881
+
882
+ (($ <let> src names syms vals body)
883
+ (let lp ((cps cps) (names names) (syms syms) (vals vals))
884
+ (match (list names syms vals)
885
+ ((() () ()) (convert cps body k subst))
886
+ (((name . names) (sym . syms) (val . vals))
887
+ (with-cps cps
888
+ (let$ body (lp names syms vals))
889
+ (let$ body (box-bound-var name sym body))
890
+ ($ ((lambda (cps)
891
+ (if (single-valued? val)
892
+ (with-cps cps
893
+ (letk klet ($kargs (name) ((bound-var sym)) ,body))
894
+ ($ (convert val klet subst)))
895
+ (with-cps cps
896
+ (letv rest)
897
+ (letk klet ($kargs (name 'rest) ((bound-var sym) rest) ,body))
898
+ (letk kreceive ($kreceive (list name) 'rest klet))
899
+ ($ (convert val kreceive subst))))))))))))
900
+
901
+ (($ <fix> src names gensyms funs body)
902
+ ;; Some letrecs can be contified; that happens later.
903
+ (define (convert-funs cps funs)
904
+ (match funs
905
+ (()
906
+ (with-cps cps '()))
907
+ ((fun . funs)
908
+ (with-cps cps
909
+ (let$ fun (convert fun k subst))
910
+ (let$ funs (convert-funs funs))
911
+ (cons (match fun
912
+ (($ $continue _ _ (and fun ($ $fun)))
913
+ fun))
914
+ funs)))))
915
+ (if (current-topbox-scope)
916
+ (let ((vars (map bound-var gensyms)))
917
+ (with-cps cps
918
+ (let$ body (convert body k subst))
919
+ (letk krec ($kargs names vars ,body))
920
+ (let$ funs (convert-funs funs))
921
+ (build-term ($continue krec src ($rec names vars funs)))))
922
+ (let ((scope-id (fresh-scope-id)))
923
+ (with-cps cps
924
+ (let$ body ((lambda (cps)
925
+ (parameterize ((current-topbox-scope scope-id))
926
+ (convert cps exp k subst)))))
927
+ (letk kscope ($kargs () () ,body))
928
+ ($ (capture-toplevel-scope src scope-id kscope))))))
929
+
930
+ (($ <let-values> src exp
931
+ ($ <lambda-case> lsrc req #f rest #f () syms body #f))
932
+ (let ((names (append req (if rest (list rest) '())))
933
+ (bound-vars (map bound-var syms)))
934
+ (with-cps cps
935
+ (let$ body (convert body k subst))
936
+ (let$ body (box-bound-vars names syms body))
937
+ (letk kargs ($kargs names bound-vars ,body))
938
+ (letk kreceive ($kreceive req rest kargs))
939
+ ($ (convert exp kreceive subst)))))))
940
+
941
+ (define (build-subst exp)
942
+ "Compute a mapping from lexical gensyms to CPS variable indexes. CPS
943
+ uses small integers to identify variables, instead of gensyms.
944
+
945
+ This subst table serves an additional purpose of mapping variables to
946
+ replacements. The usual reason to replace one variable by another is
947
+ assignment conversion. Default argument values is the other reason.
948
+
949
+ The result is a hash table mapping symbols to substitutions (in the case
950
+ that a variable is substituted) or to indexes. A substitution is a list
951
+ of the form:
952
+
953
+ (ORIG-INDEX SUBST-INDEX BOXED?)
954
+
955
+ A true value for BOXED? indicates that the replacement variable is in a
956
+ box. If a variable is not substituted, the mapped value is a small
957
+ integer."
958
+ (let ((table (make-hash-table)))
959
+ (define (down exp)
960
+ (match exp
961
+ (($ <lexical-set> src name sym exp)
962
+ (match (hashq-ref table sym)
963
+ ((orig subst #t) #t)
964
+ ((orig subst #f) (hashq-set! table sym (list orig subst #t)))
965
+ ((? number? idx) (hashq-set! table sym (list idx (fresh-var) #t)))))
966
+ (($ <lambda-case> src req opt rest kw inits gensyms body alternate)
967
+ (fold-formals (lambda (name sym init seed)
968
+ (hashq-set! table sym
969
+ (if init
970
+ (list (fresh-var) (fresh-var) #f)
971
+ (fresh-var))))
972
+ #f
973
+ (make-$arity req (or opt '()) rest
974
+ (if kw (cdr kw) '()) (and kw (car kw)))
975
+ gensyms
976
+ inits))
977
+ (($ <let> src names gensyms vals body)
978
+ (for-each (lambda (sym)
979
+ (hashq-set! table sym (fresh-var)))
980
+ gensyms))
981
+ (($ <fix> src names gensyms vals body)
982
+ (for-each (lambda (sym)
983
+ (hashq-set! table sym (fresh-var)))
984
+ gensyms))
985
+ (_ #t))
986
+ (values))
987
+ (define (up exp) (values))
988
+ ((make-tree-il-folder) exp down up)
989
+ table))
990
+
991
+ (define (cps-convert/thunk exp)
992
+ (parameterize ((label-counter 0)
993
+ (var-counter 0)
994
+ (scope-counter 0))
995
+ (with-cps empty-intmap
996
+ (letv init)
997
+ ;; Allocate kinit first so that we know that the entry point's
998
+ ;; label is zero. This simplifies data flow in the compiler if we
999
+ ;; can just pass around the program as a map of continuations and
1000
+ ;; know that the entry point is label 0.
1001
+ (letk kinit ,#f)
1002
+ (letk ktail ($ktail))
1003
+ (let$ body (convert exp ktail (build-subst exp)))
1004
+ (letk kbody ($kargs () () ,body))
1005
+ (letk kclause ($kclause ('() '() #f '() #f) kbody #f))
1006
+ ($ ((lambda (cps)
1007
+ (let ((init (build-cont
1008
+ ($kfun (tree-il-src exp) '() init ktail kclause))))
1009
+ (with-cps (persistent-intmap (intmap-replace! cps kinit init))
1010
+ kinit))))))))
1011
+
1012
+ (define *comp-module* (make-fluid))
1013
+
1014
+ (define %warning-passes
1015
+ `((unused-variable . ,unused-variable-analysis)
1016
+ (unused-toplevel . ,unused-toplevel-analysis)
1017
+ (shadowed-toplevel . ,shadowed-toplevel-analysis)
1018
+ (unbound-variable . ,unbound-variable-analysis)
1019
+ (macro-use-before-definition . ,macro-use-before-definition-analysis)
1020
+ (arity-mismatch . ,arity-analysis)
1021
+ (format . ,format-analysis)))
1022
+
1023
+ (define (optimize-tree-il x e opts)
1024
+ (define warnings
1025
+ (or (and=> (memq #:warnings opts) cadr)
1026
+ '()))
1027
+
1028
+ ;; Go through the warning passes.
1029
+ (let ((analyses (filter-map (lambda (kind)
1030
+ (assoc-ref %warning-passes kind))
1031
+ warnings)))
1032
+ (analyze-tree analyses x e))
1033
+
1034
+ (optimize x e opts))
1035
+
1036
+ (define (canonicalize exp)
1037
+ (post-order
1038
+ (lambda (exp)
1039
+ (match exp
1040
+ (($ <primcall> src 'vector
1041
+ (and args
1042
+ ((or ($ <const>) ($ <void>) ($ <lambda>) ($ <lexical-ref>))
1043
+ ...)))
1044
+ ;; Some macros generate calls to "vector" with like 300
1045
+ ;; arguments. Since we eventually compile to make-vector and
1046
+ ;; vector-set!, it reduces live variable pressure to allocate the
1047
+ ;; vector first, then set values as they are produced, if we can
1048
+ ;; prove that no value can capture the continuation. (More on
1049
+ ;; that caveat here:
1050
+ ;; http://wingolog.org/archives/2013/11/02/scheme-quiz-time).
1051
+ ;;
1052
+ ;; Normally we would do this transformation in the compiler, but
1053
+ ;; it's quite tricky there and quite easy here, so hold your nose
1054
+ ;; while we drop some smelly code.
1055
+ (let ((len (length args))
1056
+ (v (gensym "v ")))
1057
+ (make-let src
1058
+ (list 'v)
1059
+ (list v)
1060
+ (list (make-primcall src 'make-vector
1061
+ (list (make-const #f len)
1062
+ (make-const #f #f))))
1063
+ (fold (lambda (arg n tail)
1064
+ (make-seq
1065
+ src
1066
+ (make-primcall
1067
+ src 'vector-set!
1068
+ (list (make-lexical-ref src 'v v)
1069
+ (make-const #f n)
1070
+ arg))
1071
+ tail))
1072
+ (make-lexical-ref src 'v v)
1073
+ (reverse args) (reverse (iota len))))))
1074
+
1075
+ (($ <primcall> src 'struct-set! (struct index value))
1076
+ ;; Unhappily, and undocumentedly, struct-set! returns the value
1077
+ ;; that was set. There is code that relies on this. Hackety
1078
+ ;; hack...
1079
+ (let ((v (gensym "v ")))
1080
+ (make-let src
1081
+ (list 'v)
1082
+ (list v)
1083
+ (list value)
1084
+ (make-seq src
1085
+ (make-primcall src 'struct-set!
1086
+ (list struct
1087
+ index
1088
+ (make-lexical-ref src 'v v)))
1089
+ (make-lexical-ref src 'v v)))))
1090
+
1091
+ ;; Lower (logand x (lognot y)) to (logsub x y). We do it here
1092
+ ;; instead of in CPS because it gets rid of the lognot entirely;
1093
+ ;; if type folding can't prove Y to be an exact integer, then DCE
1094
+ ;; would have to leave it in the program for its possible
1095
+ ;; effects.
1096
+ (($ <primcall> src 'logand (x ($ <primcall> _ 'lognot (y))))
1097
+ (make-primcall src 'logsub (list x y)))
1098
+ (($ <primcall> src 'logand (($ <primcall> _ 'lognot (y)) x))
1099
+ (make-primcall src 'logsub (list x y)))
1100
+
1101
+ (($ <prompt> src escape-only? tag body
1102
+ ($ <lambda> hsrc hmeta
1103
+ ($ <lambda-case> _ hreq #f hrest #f () hsyms hbody #f)))
1104
+ exp)
1105
+
1106
+ ;; Eta-convert prompts without inline handlers.
1107
+ (($ <prompt> src escape-only? tag body handler)
1108
+ (let ((h (gensym "h "))
1109
+ (args (gensym "args ")))
1110
+ (make-let
1111
+ src (list 'h) (list h) (list handler)
1112
+ (make-seq
1113
+ src
1114
+ (make-conditional
1115
+ src
1116
+ (make-primcall src 'procedure? (list (make-lexical-ref #f 'h h)))
1117
+ (make-void src)
1118
+ (make-primcall
1119
+ src 'scm-error
1120
+ (list
1121
+ (make-const #f 'wrong-type-arg)
1122
+ (make-const #f "call-with-prompt")
1123
+ (make-const #f "Wrong type (expecting procedure): ~S")
1124
+ (make-primcall #f 'list (list (make-lexical-ref #f 'h h)))
1125
+ (make-primcall #f 'list (list (make-lexical-ref #f 'h h))))))
1126
+ (make-prompt
1127
+ src escape-only? tag body
1128
+ (make-lambda
1129
+ src '()
1130
+ (make-lambda-case
1131
+ src '() #f 'args #f '() (list args)
1132
+ (make-primcall
1133
+ src 'apply
1134
+ (list (make-lexical-ref #f 'h h)
1135
+ (make-lexical-ref #f 'args args)))
1136
+ #f)))))))
1137
+ (_ exp)))
1138
+ exp))
1139
+
1140
+ (define (compile-cps exp env opts)
1141
+ (values (cps-convert/thunk
1142
+ (canonicalize (optimize-tree-il exp env opts)))
1143
+ env
1144
+ env))
1145
+
1146
+ ;;; Local Variables:
1147
+ ;;; eval: (put 'convert-arg 'scheme-indent-function 2)
1148
+ ;;; eval: (put 'convert-args 'scheme-indent-function 2)
1149
+ ;;; End: