From: fred Date: Sun, 22 Dec 1996 19:52:56 +0000 (+0000) Subject: lilypond-0.0.20 X-Git-Tag: release/1.5.59~6502 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9bd0d3ef79a6fa41e65b2c387fbfc0527321eeee;p=lilypond.git lilypond-0.0.20 --- diff --git a/Documentation/CodingStyle.pod b/Documentation/CodingStyle.pod new file mode 100644 index 0000000000..a0ffcaf4ea --- /dev/null +++ b/Documentation/CodingStyle.pod @@ -0,0 +1,99 @@ +=head1 NAME + +CodingStyle - standards while programming for LilyPond + +=head1 DESCRIPTION + +Please use these standards while doing programming for LilyPond + + + +Functions and methods do not return errorcodes, but use assert for +checking status. + +=head2 INDENTATION + +in emacs: + + + (add-hook 'c-mode-hook + '(lambda ()(setq c-basic-offset 4))) + + + (add-hook 'c++-mode-hook + '(lambda() (c-set-style "Stroustrup") + ) + ) + + +=head2 CLASSES and TYPES: + + This_is_a_class + AClass_name (for Abbreviation_class_name) + +=head2 DATA MEMBERS + + Class::member + +if the member's name resembles its type, then I use + + class Fubular { ..} + + Class::fubular_ + +=head2 COMMENTS + + /// short description + class Class { + /// + Data data_member_; + /** + .. + */ + + /****************/ + + /// short memo + member(); + /** + long doco of member() + */ + }; + /** + Class documentation. + */ + +Unfortunately most of the code isn't really documented that good. + +=head2 CLASSNAMES (2) + +A lot of classes in LilyPond start with 'P', this is to distinguish +certain parts of LilyPond: the P stands for Printer, and the P-classes +are supposed to be more lowlevel than the others. Example: + +Staff uses PStaff, PScore and PCol to do the typesetting of +symbols. Staff is the "brains" for PStaff + +NB: in PCursor (which is part of the library) P stands for PointerCursor + + +=head2 MEMBERS(2) + +Standard methods: + + ///check that *this satisfies its invariants, abort if not. + void OK() const + + /// print *this (and substructures) to debugging log + void print() const + + /// add some data to *this; + add( .. ) + /** + Presence of these methods usually imply that it is not feasible to this + via a constructor + */ + + /// replace some data of *this + set( .. ) + diff --git a/Documentation/README.pod b/Documentation/README.pod new file mode 100644 index 0000000000..f7226fa03c --- /dev/null +++ b/Documentation/README.pod @@ -0,0 +1,165 @@ +=head1 NAME + +Lilypond - a music typesetter + +=head1 SYNOPSIS + + lilypond [options] [inputfiles] + +=head1 DESCRIPTION + +LilyPond typesets music. It translates script files (mudela files or +F<.ly>'s) into TeX input. + +=head1 OPTIONS + +=item B<-d,--debug> +debugging + +=item B<-w,--warranty> +warranty + +=item B<-o,--output> +default output file + +=item B<-h,--help> +help + +=head1 LICENSE + +GNU GPL. See file COPYING + +=head1 PREREQUISITES + +Compilation: + +=over 5 + +=item - Unix (any decent Linux distribution is fine) + +=item - GNU C++ v2.7 or better (with libg++ ) + +=item - GNU make. + +=item - flex (2.5.1 or better) + +=item - bison/yacc + +=item - The "flower" library, which should be available from the + same source you got this from. + +=item - perl + +=back + +Operation: + +=over 5 + +=item - TeX + +=item - the MusixTeX fonts + +=back + +The Makefile uses perl for trivial operations, and you could tinker +with it to use sed or awk. + +=head1 COMPILING + +Do: + + tar zxf flower-1.11.9.tar.gz + mv flower-1.11.9 flower + cd flower; make; cd .. + tar zxf lilypond-1.2.13.tar.gz + cd lilypond-1.2.13 + make + +why G++ >= 2.7? LilyPond & flower lib uses: + + builtin bool + typeof + operator ? + the new for-scope + class Rational (libg++) + +=head1 AUTHOR + +Han-Wen Nienhuys , + +=head1 EXAMPLES + +At this time, LilyPond is only suited for Quick & Dirty jobs (the +output quality still is too low). If you're not discouraged; this is +what I type in my xterm: + + lilypond someinput.ly + tex test + xdvi test& + +This is what the output looks like over here: + + hw:~/musix/spacer$ lilypond maartje.ly + LilyPond 0.0.17/FlowerLib 1.0.14. Compile: Dec 17 1996, 11:33:54 (g++ 2.7.2) + Parsing ... [symbol.ini][maartje.ly] + Processing ... Calculating ... Postprocessing ... + output to lelie.uit... + + hw:~/musix/spacer$ tex test + This is TeX, Version 3.14159 (C version 6.1) + (test.tex + Hyphenation patterns for english, dutch, loaded. + (lilyponddefs.tex) (lelie.uit) [1] [2] ) + Output written on test.dvi (2 pages, 8072 bytes). + Transcript written on test.log. + + hw:~/musix/spacer$ xdvi test& + [1] 1468 + +Check out kortjakje.ly, it has some comments + + +=head1 PROBLEMS + +If LilyPond bombs out, then please recompile using B<-g>, and send a gdb +stacktrace of the crash. It also helps if you can print the values of the objects. So if you trace is + + (gdb) backtrace 12 + #0 Interval::operator+= (this=0x11fffec60..) + at ../flower/interval.hh:50 + #1 0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39 + #2 0x12008fdbc in itemlist_width (its=0x11fffed58 .. + : + : + +Than it would help if you send a dump of the Interval and the Item +(use: 'print *this' or use LilyPond print() methods). + +This is a beta version of LilyPond. Please send your helpful comments +and patches to me, + +LilyPond is updated very frequently, the latest version is always available at: + +F + + +=head1 FILES + +F The initialisation file with symbol tables etc. + +=head1 HOW DOES IT WORK + +=over 5 + +Use The Source, Luke. If you don't know C++, you can try editing +the file F<.dstreamrc> for copious debugging output. (use B<-d>) + +the subdir Documentation/ contains some more-in-depth matter on LilyPond + +The source is commented in the DOC++ style. +Check out doc++ at + + http://www.ZIB-Berlin.DE/VisPar/doc++/doc++.html + +=back diff --git a/README b/README index c936c13e29..94d352fc50 100644 --- a/README +++ b/README @@ -1,116 +1,7 @@ --*-text-*- +Please refer to the directory Documentation/. -last update: 96/17/12, 0.0.17 +To generate the pretty-printed docs, do a: -LICENSE + make doc -See file COPYING - -INTRODUCTION - -This is a beta version of LilyPond (a music typesetter). Please send -your helpful comments and patches to me, - - hanwen@stack.nl - -LilyPond is updated very frequently, the latest version is always available at: - - ftp://pcnov095.win.tue.nl/pub/lilypond - -PREREQUISITES - -Compilation: - - - Unix (any decent Linux distribution is fine) - - GNU C++ v2.7 or better - - GNU make. - - flex (2.5.1 or better) - - bison/yacc - - The "flower" library, which should be available from the - same source you got this from. - - perl - -Operation: - - - TeX - - the MusixTeX fonts - -The Makefile uses perl for trivial operations, and you could tinker -with it to use sed or awk. - -COMPILING - -Do: - - tar zxf flower-1.11.9.tar.gz - mv flower-1.11.9 flower - cd flower; make; cd .. - tar zxf lilypond-1.2.13.tar.gz - cd lilypond-1.2.13 - make - -why G++ >= 2.7? LilyPond & flower lib uses: - - builtin bool - typeof - operator ? - new for-scope - -USING - -At this time, LilyPond is only suited for Quick & Dirty jobs (the -output quality still is too low). If you're not discouraged; this is -what I type in my xterm: - - lilypond someinput.ly - tex test - xdvi test& - -This is what the output looks like over here: - - hw:~/musix/spacer$ lilypond maartje.ly - LilyPond 0.0.17/FlowerLib 1.0.14. Compile: Dec 17 1996, 11:33:54 (g++ 2.7.2) - Parsing ... [symbol.ini][maartje.ly] - Processing ... Calculating ... Postprocessing ... - output to lelie.uit... - - hw:~/musix/spacer$ tex test - This is TeX, Version 3.14159 (C version 6.1) - (test.tex - Hyphenation patterns for english, dutch, loaded. - (lilyponddefs.tex) (lelie.uit) [1] [2] ) - Output written on test.dvi (2 pages, 8072 bytes). - Transcript written on test.log. - - hw:~/musix/spacer$ xdvi test& - [1] 1468 - -Check out kortjakje.ly, it has some comments - - -PROBLEMS - -If LilyPond bombs out, then please recompile using -g, and send a gdb -stacktrace of the crash. It also helps if you can print the values of the objects. So if you trace is - -(gdb) backtrace 12 -#0 Interval::operator+= (this=0x11fffec60, r=-1.7976931348623157e+308) - at ../flower/interval.hh:50 -#1 0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39 -#2 0x12008fdbc in itemlist_width (its=0x11fffed58) at src/simpleprint.cc:40 - : - : - -Than it would help if you send a dump of the Interval and the Item (use: 'print *this' or use LilyPond print() methods) - -HOW DOES IT WORK - -* Use The Source, Luke. If you don't know C++, you can try editing -.dstreamrc for copious debugging output. (use -d) - -* the subdir Documentation/ contains some more-in-depth matter on LilyPond - -* The source is commented in the DOC++ style. -Check out doc++ at - - http://www.ZIB-Berlin.DE/VisPar/doc++/doc++.html +in the top-level dir \ No newline at end of file