<!-- header_tag --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd"> <html> <!-- Copyright C 1999-2008 by the authors Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections. A copy of the license is included in the section entitled "GNU Free Documentation License". --> <!-- Created on January 20, 2009 by texi2html 1.79 texi2html was written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) Karl Berry <karl@freefriends.org> Olaf Bachmann <obachman@mathematik.uni-kl.de> and many others. Maintained by: Many creative people. Send bugs and suggestions to <texi2html-bug@nongnu.org> --> <head> <title>GNU LilyPond Contributor's Guide: 7.2 Programming without compiling</title> <meta name="description" content="GNU LilyPond Contributor's Guide: 7.2 Programming without compiling"> <meta name="keywords" content="GNU LilyPond Contributor's Guide: 7.2 Programming without compiling"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="texi2html 1.79"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link href="index.html#index" rel="start" title="GNU LilyPond — Contributor's Guide"> <link href="index_toc.html#SEC_Contents" rel="contents" title="Table of Contents"> <link href="index_abt.html#SEC_About" rel="help" title="About This Document"> <link href="Programming-work.html#Programming-work" rel="up" title="7. Programming work"> <link href="Major-release-checklist.html#Major-release-checklist" rel="next" title="8.3 Major release checklist"> <link href="Introduction-to-programming.html#Introduction-to-programming" rel="previous" title="7.1 Introduction to programming"> <link rel="stylesheet" type="text/css" title="Patrick McCarty's design" href="lilypond-mccarty.css"> <link rel="alternate stylesheet" type="text/css" href="lilypond.css" title="Andrew Hawryluk's design"> <link rel="alternate stylesheet" type="text/css" href="lilypond-blue.css" title="Kurt Kroon's blue design"> <!--[if lte IE 7]> <link href="lilypond-ie-fixes.css" rel="stylesheet" type="text/css"> <![endif]--> </head> <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> <div id="main"> <a name="Programming-without-compiling"></a> <table class="nav_table"> <tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> << Programming work </a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter"> Release work >> </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="Introduction-to-programming.html#Introduction-to-programming" title="Previous section in reading order" accesskey="p" rel="previous"> < Introduction to programming </a>]</td><td valign="middle" align="center" colspan="1">[<a href="Programming-work.html#Programming-work" title="Up section" accesskey="u" rel="up"> Up : Programming work </a>]</td><td valign="middle" align="right" colspan="2">[<a href="#Programming-without-compiling" title="Next section in reading order" accesskey="n" rel="next"> > </a>]</td></tr></table> <a name="Programming-without-compiling"></a> <h2 class="section">7.2 Programming without compiling</h2> <p>Much of the development work in LilyPond takes place by changing *.ly or *.scm files. These changes can be made without compiling LilyPond. Such changes are described in this section. </p> <hr size="6"> <a name="Programming-without-compiling"></a> <table class="nav_table"> <tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> << Programming work </a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter"> Release work >> </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Programming-without-compiling" title="Previous section in reading order" accesskey="p" rel="previous"> < Programming without compiling </a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Programming-without-compiling" title="Up section" accesskey="u" rel="up"> Up : Programming without compiling </a>]</td><td valign="middle" align="right" colspan="2">[<a href="#Programming-without-compiling" title="Next section in reading order" accesskey="n" rel="next"> > </a>]</td></tr></table> <h3 class="subsection">7.2.1 Modifying distribution files</h3> <p>Much of LilyPond is written in Scheme or LilyPond input files. These files are interpreted when the program is run, rather than being compiled when the program is built, and are present in all LilyPond distributions. You will find .ly files in the ly/ directory and the Scheme files in the scm/ directory. Both Scheme files and .ly files can be modified and saved with any text editor. It’s probably wise to make a backup copy of your files before you modify them, although you can reinstall if the files become corrupted. </p> <p>Once you’ve modified the files, you can test the changes just by running LilyPond on some input file. It’s a good idea to create a file that demonstrates the feature you’re trying to add. This file will eventually become a regression test and will be part of the LilyPond distribution. </p> <hr size="6"> <a name="Programming-without-compiling"></a> <table class="nav_table"> <tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> << Programming work </a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter"> Release work >> </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Programming-without-compiling" title="Previous section in reading order" accesskey="p" rel="previous"> < </a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Programming-without-compiling" title="Up section" accesskey="u" rel="up"> Up : Programming without compiling </a>]</td><td valign="middle" align="right" colspan="2">[<a href="Finding-functions.html#Finding-functions" title="Next section in reading order" accesskey="n" rel="next"> Finding functions > </a>]</td></tr></table> <h3 class="subsection">7.2.2 Desired file formatting</h3> <p>Files that are part of the LilyPond distribution have Unix-style line endings (LF), rather than DOS (CR+LF) or MacOS 9 and earlier (CR). Make sure you use the necessary tools to ensure that Unix-style line endings are preserved in the patches you create. </p> <p>Tab characters should not be included in files for distribution. All indentation should be done with spaces. Most editors have settings to allow the setting of tab stops and ensuring that no tab characters are included in the file. </p> <p>Scheme files and LilyPond files should be written according to standard style guidelines. Scheme file guidelines can be found at <a href="http://community.schemewiki.org/?scheme-style">http://community.schemewiki.org/?scheme-style</a>. Following these guidelines will make your code easier to read. Both you and others that work on your code will be glad you followed these guidelines. </p> <p>For LilyPond files, you should follow the guidelines for LilyPond snippets in the documentation. You can find these guidelines at </p> <hr size="6"> <table class="nav_table"> <tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> << Programming work </a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter"> Release work >> </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Programming-without-compiling" title="Previous section in reading order" accesskey="p" rel="previous"> < </a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Programming-without-compiling" title="Up section" accesskey="u" rel="up"> Up : Programming without compiling </a>]</td><td valign="middle" align="right" colspan="2">[<a href="Finding-functions.html#Finding-functions" title="Next section in reading order" accesskey="n" rel="next"> Finding functions > </a>]</td></tr></table> <!-- footer_tag --> <div class="footer"> <p class="footer_version"> This page is for LilyPond-2.12.2 (stable-branch). </p> <p class="footer_report"> Your <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions for the documentation</a> are welcome, please report errors to our <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">bug list</a>. </p> </div> <!-- FOOTER --> <!-- end div#main here --> </div> <div id="tocframe"> <p class="toc_uplink"><a href="../index.html" title="Documentation Index"><< Back to Documentation Index</a></p> <h4 class="toc_header"> <a href="index.html#index" title="Start of the manual">Contributor’s Guide</a></h4> <div class="contents"> <ul class="toc"> <li><a name="toc-Starting-with-git-1" href="Starting-with-git.html#Starting-with-git">1. Starting with git</a> <ul class="toc"> <li><a name="toc-Getting-the-source-code-1" href="Getting-the-source-code.html#Getting-the-source-code">1.1 Getting the source code</a> </li> <li><a name="toc-Updating-the-source-code-1" href="Updating-the-source-code.html#Updating-the-source-code">1.2 Updating the source code</a> </li> <li><a name="toc-Sharing-your-changes-1" href="Sharing-your-changes.html#Sharing-your-changes">1.3 Sharing your changes</a> </li> <li><a name="toc-Other-interesting-Git-commands-1" href="Other-interesting-Git-commands.html#Other-interesting-Git-commands">1.4 Other interesting Git commands</a> </li> <li><a name="toc-Git-on-Windows-1" href="Git-on-Windows.html#Git-on-Windows">1.5 Git on Windows</a> </li> </ul> </li> <li><a name="toc-Compiling-1" href="Compiling.html#Compiling">2. Compiling</a> <ul class="toc"> <li><a name="toc-move-AU-1-here-1" href="move-AU-1-here.html#move-AU-1-here">2.1 move AU 1 here</a> </li> </ul> </li> <li><a name="toc-Documentation-work-1" href="Documentation-work.html#Documentation-work">3. Documentation work</a> <ul class="toc"> <li><a name="toc-Introduction-to-documentation-work-1" href="Introduction-to-documentation-work.html#Introduction-to-documentation-work">3.1 Introduction to documentation work</a> </li> <li><a name="toc-Texinfo-crash-course-1" href="Texinfo-crash-course.html#Texinfo-crash-course">3.2 Texinfo crash course</a> </li> <li><a name="toc-Documentation-policy-1" href="Documentation-policy.html#Documentation-policy">3.3 Documentation policy</a> </li> <li><a name="toc-Tips-for-writing-docs-1" href="Tips-for-writing-docs.html#Tips-for-writing-docs">3.4 Tips for writing docs</a> </li> <li><a name="toc-Updating-doc-with-convert_002dly" href="Updating-docs-with-convert_002dly.html#Updating-docs-with-convert_002dly">3.5 Updating doc with convert-ly</a> </li> <li><a name="toc-Translating-the-documentation-1" href="Translating-the-documentation.html#Translating-the-documentation">3.6 Translating the documentation</a> </li> </ul> </li> <li><a name="toc-Website-work-1" href="Website-work.html#Website-work">4. Website work</a> <ul class="toc"> <li><a name="toc-Introduction-to-website-work-1" href="Introduction-to-website-work.html#Introduction-to-website-work">4.1 Introduction to website work</a> </li> <li><a name="toc-Translating-the-website-1" href="Translating-the-website.html#Translating-the-website">4.2 Translating the website</a> </li> </ul> </li> <li><a name="toc-LSR-work-1" href="LSR-work.html#LSR-work">5. LSR work</a> <ul class="toc"> <li><a name="toc-Introduction-to-LSR-1" href="Introduction-to-LSR.html#Introduction-to-LSR">5.1 Introduction to LSR</a> </li> <li><a name="toc-Adding-snippets-1" href="Adding-snippets.html#Adding-snippets">5.2 Adding snippets</a> </li> <li><a name="toc-Approving-snippets-1" href="Approving-snippets.html#Approving-snippets">5.3 Approving snippets</a> </li> <li><a name="toc-LSR-to-git-1" href="LSR-to-git.html#LSR-to-git">5.4 LSR to git</a> </li> </ul> </li> <li><a name="toc-Issues-1" href="Issues.html#Issues">6. Issues</a> <ul class="toc"> <li><a name="toc-Introduction-to-issues-1" href="Introduction-to-issues.html#Introduction-to-issues">6.1 Introduction to issues</a> </li> <li><a name="toc-Issue-classification-1" href="Issue-classification.html#Issue-classification">6.2 Issue classification</a> </li> <li><a name="toc-Adding-issues-to-the-tracker-1" href="Adding-issues-to-the-tracker.html#Adding-issues-to-the-tracker">6.3 Adding issues to the tracker</a> </li> </ul> </li> <li class="toc_current"><a name="toc-Programming-work-1" href="Programming-work.html#Programming-work">7. Programming work</a> <ul class="toc"> <li><a name="toc-Introduction-to-programming-1" href="Introduction-to-programming.html#Introduction-to-programming">7.1 Introduction to programming</a> </li> <li class="toc_current"><a name="toc-Programming-without-compiling-1" href="Programming-without-compiling.html#Programming-without-compiling">7.2 Programming without compiling</a> <ul class="toc"> <li class="toc_current"><a name="toc-Modifying-distribution-files" href="Programming-without-compiling.html#Programming-without-compiling">7.2.1 Modifying distribution files</a> </li> <li class="toc_current"><a name="toc-Desired-file-formatting" href="Programming-without-compiling.html#Programming-without-compiling">7.2.2 Desired file formatting</a> </li> </ul> </li> <li><a name="toc-Finding-functions-1" href="Finding-functions.html#Finding-functions">7.3 Finding functions</a> </li> <li><a name="toc-Code-style-1" href="Code-style.html#Code-style">7.4 Code style</a> </li> <li><a name="toc-Debugging-LilyPond-1" href="Debugging-LilyPond.html#Debugging-LilyPond">7.5 Debugging LilyPond</a> </li> </ul> </li> <li><a name="toc-Release-work-1" href="Release-work.html#Release-work">8. Release work</a> <ul class="toc"> <li><a name="toc-Development-phases-1" href="Development-phases.html#Development-phases">8.1 Development phases</a> </li> <li><a name="toc-Minor-release-checklist-1" href="Minor-release-checklist.html#Minor-release-checklist">8.2 Minor release checklist</a> </li> <li><a name="toc-Major-release-checklist-1" href="Major-release-checklist.html#Major-release-checklist">8.3 Major release checklist</a> </li> </ul> </li> </ul> </div> </div> </body> </html>