From f1729e18310c8c7e45ca8d36cb3ed3907bf943ca Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 24 Jul 2003 23:49:46 +0000 Subject: [PATCH] * Documentation/topdocs/NEWS.texi (Top): rewrite NEWS in texinfo. * python/lilylib.py (lilypond_version): 2.1 proof version check. * lily/staff-symbol-referencer.cc (LY_DEFINE): lrint, the final fix. --- ChangeLog | 9 ++ Documentation/index.html.in | 2 +- Documentation/topdocs/NEWS.texi | 224 +++++++++++++++++++++++++++ GNUmakefile.in | 7 +- NEWS | 161 ------------------- VERSION | 2 +- lily/staff-symbol-referencer.cc | 5 +- python/lilylib.py | 18 +-- stepmake/stepmake/texinfo-rules.make | 4 +- 9 files changed, 255 insertions(+), 177 deletions(-) create mode 100644 Documentation/topdocs/NEWS.texi delete mode 100644 NEWS diff --git a/ChangeLog b/ChangeLog index b4f9fd9f84..ea68a8c344 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2003-07-25 Han-Wen Nienhuys + + * Documentation/topdocs/NEWS.texi (Top): rewrite NEWS in texinfo. + + * python/lilylib.py (lilypond_version): 2.1 proof version check. + + * lily/staff-symbol-referencer.cc (LY_DEFINE): lrint, the final + fix. + 2003-07-25 Heikki Junes * Documentation/user/{ various }: bind text snippets with their diff --git a/Documentation/index.html.in b/Documentation/index.html.in index 3c498c3f2e..e87ac1729c 100644 --- a/Documentation/index.html.in +++ b/Documentation/index.html.in @@ -49,7 +49,7 @@
  • - NEWS + NEWS
    (changes since the last major release)
diff --git a/Documentation/topdocs/NEWS.texi b/Documentation/topdocs/NEWS.texi new file mode 100644 index 0000000000..e305a17fdd --- /dev/null +++ b/Documentation/topdocs/NEWS.texi @@ -0,0 +1,224 @@ +\input texinfo @c -*-texinfo-*- +@setfilename NEWS.info +@settitle NEWS + +@node Top, , , +@top + + +@chapter New features in 1.8 since 1.6 + +@itemize + +@item +The chord entry code has been completely rewritten. It is now +cleaner and more flexible. + +@item +A new syntax has been added for text entry. This syntax is more +friendly than the old mechanism, and it is implemented in a more +robust and modular way. For more information, refer to the section on +"Text markup" in the notation manual. + +@item +The integration of the input language and Scheme has been made deeper: +you can now use LilyPond identifiers in Scheme, and use Scheme +expressions instead of LilyPond identifiers. + +@item +The internal representation of music has been cleaned up completely +and converted to Scheme data structures. The representation may be +exported as XML. + +@item +A new uniform postfix syntax for articulation has been introduced. +A beamed slurred pair of eighth notes can be entered as + +@example + c8-[-( d8-]-) +@end example + +In version 2.0, postfix syntax will be the only syntax +available, and the dashes will become optional. + +This will simplify the language: all articulations can be entered as +postfix, in any order. + +@item +A new syntax has been added for chords: + + +@example + << PITCHES >> +@end example + +It is not necessary to update files to this syntax, but it will be for +using LilyPond version 2.0. In version 2.0, this syntax will be +changed to + +@example + < PITCHES > for chords +@end example + +and + +@example + \simultaneous @{ .. @} +@end example + +for simultaneous music. + +To convert your files from to <>, use the script +included in buildscripts/convert-new-chords.py + +This change was introduced for the following reasons + +@itemize @bullet +@item +It solves the "start score with chord" problem, where you have to + state \context Voice explicitly when a chord was the start of a + Staff or Score. +@item +With the new syntax, it is possible to distinguish between + articulations (or fingerings) which are for a single chord note, + and which are for the entire chord. This allows for per-note + fingerings, and is more logical on the whole. +@end itemize + +@item +User code may now be executed during interpreting. The syntax for +this code is + +@example + \applycontext #SCHEME-FUNCTION +@end example + +@item +User code may now be executed on arbitrary grobs during interpreting. +The syntax for this feature is + +@example + \applyoutput #SCHEME-FUNCTION +@end example +SCHEME-FUNCTION takes a single argument, and is called for every grob +that is created in the current context. + +@item +New algorithms for chord-name formatting have been installed. They +can be tuned and have ergonomic syntax for entering exceptions. + +@item +Texts may now be put on multimeasure rests, eg. + +@example + R1*20^\markup @{ "GP" @} +@end example + +@item +Ancient notation now prints ligatures in Gregorian square neumes +notation, roughly following the typographical style of the Liber +hymnarius of Solesmes, published in 1983. Ligatures are still printed +without the proper line breaking and horizontal spacing. + +@item +Glissandi can now be printed using the zigzag style. + +@item +LilyPond can now print clusters. The syntax is: + +@example + \apply #notes-to-clusters @{ NOTE NOTE .. @} +@end example + +@item +For irregular meters, beat grouping marks can be printed. The +syntax for this is + +@example + #(set-time-signature 7 8 '(3 2 2)) +@end example + + +@item +Nested horizontal brackets for music analysis can now be printed. + +@example + NOTE-\startGroup + .. + NOTE-\stopGroup +@end example + + +@item Ottava brackets are now fully supported as a feature. The syntax +is + +@example + #(set-octavation 1) +@end example + + +@item Metronome markings are printed when a \tempo command is processed. + + + +@item Fingerings can be put on chords horizontally. + + + +@item The appearance of various glyphs has been fine-tuned. + + + +@item Different types of percent style repeats may now be nested. + + + +@item The emacs support has been extended. + + +@item +The manual has been completely revised and extended. + +@end itemize + +@chapter New features in 1.6 since 1.4 + + + +Support for figured bass and tablature. + +Completely rewritten beam formatting: provides much better output +now. + +Completely revised and improved music font. + +Completely rewritten MIDI import support. + +Completely rewritten grace note support. Practically speaking this +means that grace notes can be slurred to normal normal notes. + +Improved accidental handling and formatting: styles for producing +cautionaries may vary, and complex collisions between accidentals of a +chord are handled much better. + +Better spacing: both globally and locally. This includes subtle +details like optical stem spacing. + +More support for ancient notation: mensural ligatures, ambitus +(pitch range) of voices, more shapes, etc. + +More support for piano notation: bracket pedals, directed arpeggios, +arpeggio brackets. + +Easier music polyphonic music entry. + +More extensibility, many speedups and bugfixes + +The manual has been thoroughly revised. + +Development is now hosted at http://savannah.gnu.org, and sources +can be downloaded through anonymous CVS. + +Support for windows: LilyPond is part of the cygwin distribution, +which comes with a user-friendly installer. + diff --git a/GNUmakefile.in b/GNUmakefile.in index 542c232167..82dba9d433 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -17,8 +17,8 @@ SUBDIRS = buildscripts python scripts \ # SCRIPTS = configure aclocal.m4 autogen.sh -README_FILES = ChangeLog COPYING DEDICATION NEWS README.mandrake ROADMAP THANKS -README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt +README_FILES = ChangeLog COPYING DEDICATION README.mandrake ROADMAP THANKS +README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt NEWS.txt IN_FILES := $(wildcard *.in) EXTRA_DIST_FILES = $(wildcard *.el) vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) emacsclient.patch lexer-gcc-3.0.patch server.el.patch darwin.patch .cvsignore lexer-gcc-3.1.sh lilypond.words NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES) @@ -62,7 +62,8 @@ local-web-post: cd $(builddir) && find Documentation input \ $(web-ext:%=-path '*/out-www/*.%' -or) -false \ > $(outdir)/weblist - echo '' > $(builddir)/index.html + echo '' > $(builddir)/index.html + echo 'Redirecting to the documentation index...' >> $(builddir)/index.html cd $(builddir) && ls *.html >> $(outdir)/weblist cat $(outdir)/weblist | (cd $(builddir); GZIP=-9v tar -czf $(outdir)/web.tar.gz -T -) diff --git a/NEWS b/NEWS deleted file mode 100644 index f557571efd..0000000000 --- a/NEWS +++ /dev/null @@ -1,161 +0,0 @@ -New features in 1.8 since 1.6 -============================= - -** The chord entry code has been completely rewritten. It is now -cleaner and more flexible. - -** A new syntax has been added for text entry. This syntax is more -friendly than the old mechanism, and it is implemented in a more -robust and modular way. For more information, refer to the section on -"Text markup" in the notation manual. - -** Deeper integration of the input language and Scheme. You can now use -LilyPond identifiers in Scheme, and use Scheme expressions instead of -LilyPond identifiers. - -** The internal representation of music has been cleaned up completely -and converted to Scheme data structures. The representation may be -exported as XML. - -** A new uniform postfix syntax for articulation has been introduced. -A beamed slurred pair of eighth notes can be entered as - - c8-[-( d8-]-) - -In version 2.0, postfix syntax will be the only syntax -available, and the dashes will become optional. - -This will simplify the language: all articulations can be entered as -postfix, in any order. - -** A new syntax has been added for chords: - - << PITCHES >> - -It is not necessary to update files to this syntax, but it will be for -using LilyPond version 2.0. In version 2.0, this syntax will be -changed to - - < PITCHES > for chords - -and - - \simultaneous { .. } for simultaneous music. - -To convert your files from to <>, use the script -included in buildscripts/convert-new-chords.py - -This change was introduced for the following reasons - - * It solves the "start score with chord" problem, where you have to - state \context Voice explicitly when a chord was the start of a - Staff or Score. - - * With the new syntax, it is possible to distinguish between - articulations (or fingerings) which are for a single chord note, - and which are for the entire chord. This allows for per-note - fingerings, and is more logical on the whole. - - -** User code may now be executed during interpreting. The syntax for -this code is - - \applycontext #SCHEME-FUNCTION - - -** User code may now be executed on arbitrary grobs during interpreting. -The syntax for this feature is - - \applyoutput #SCHEME-FUNCTION - -SCHEME-FUNCTION takes a single argument, and is called for every grob -that is created in the current context. - -** New algorithms for chord-name formatting have been installed. They -can be tuned and have ergonomic syntax for entering exceptions. - -** Texts may now be put on multimeasure rests, eg. - - R1*20^\markup { "GP" } - -** Ancient notation now prints ligatures in Gregorian square neumes -notation, roughly following the typographical style of the Liber -hymnarius of Solesmes, published in 1983. Ligatures are still printed -without the proper line breaking and horizontal spacing. - -** Glissandi can now be printed using the zigzag style. - -** Clusters may now be printed. The syntax is: - - \apply #notes-to-clusters { NOTE NOTE .. } - -** For irregular meters, beat grouping marks can be printed. The -syntax for this is - - #(set-time-signature 7 8 '(3 2 2)) - -** Nested horizontal brackets for music analysis can now be printed. - - NOTE-\startGroup - .. - NOTE-\stopGroup - -** Ottava brackets are now fully supported as a feature. The syntax -is - - #(set-octavation 1) - -** Metronome markings are printed when a \tempo command is processed. - -** Fingerings can be put on chords horizontally. - -** The appearance of various glyphs has been fine-tuned. - -** Different types of percent style repeats may now be nested. - -** The emacs support has been extended. - -** The manual has been completely revised and extended. - - - -New features in 1.6 since 1.4 -============================= - -* Support for figured bass and tablature. - -* Completely rewritten beam formatting: provides much better output -now. - -* Completely revised and improved music font. - -* Completely rewritten MIDI import support. - -* Completely rewritten grace note support. Practically speaking this -means that grace notes can be slurred to normal normal notes. - -* Improved accidental handling and formatting: styles for producing -cautionaries may vary, and complex collisions between accidentals of a -chord are handled much better. - -* Better spacing: both globally and locally. This includes subtle -details like optical stem spacing. - -* More support for ancient notation: mensural ligatures, ambitus -(pitch range) of voices, more shapes, etc. - -* More support for piano notation: bracket pedals, directed arpeggios, -arpeggio brackets. - -* Easier music polyphonic music entry. - -* More extensibility, many speedups and bugfixes - -* The manual has been thoroughly revised. - -* Development is now hosted at http://savannah.gnu.org, and sources -can be downloaded through anonymous CVS. - -* Support for windows: LilyPond is part of the cygwin distribution, -which comes with a user-friendly installer. - diff --git a/VERSION b/VERSION index a4bb9481f0..4d9bc08ea0 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=7 -PATCH_LEVEL=28 +PATCH_LEVEL=29 MY_PATCH_LEVEL= # Use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/lily/staff-symbol-referencer.cc b/lily/staff-symbol-referencer.cc index 767aeb6d00..e16a7ead07 100644 --- a/lily/staff-symbol-referencer.cc +++ b/lily/staff-symbol-referencer.cc @@ -86,7 +86,10 @@ LY_DEFINE(ly_grob_staff_position, Real pos = Staff_symbol_referencer::get_position (g); if (fabs (rint (pos) -pos) < 1e-6) // ugh. - return gh_int2scm (lrint (pos)); + /* + lrint has issues with various glibcs. + */ + return gh_int2scm ((int) round (pos)); else return gh_double2scm (pos); } diff --git a/python/lilylib.py b/python/lilylib.py index fdd3be951b..f171ff7499 100644 --- a/python/lilylib.py +++ b/python/lilylib.py @@ -201,15 +201,15 @@ def help (): def lilypond_version (binary): p = read_pipe ('%s --version ' % binary) - x = [] - def catch_version (match): - x.append (match.group (1)) - return '' - - re.sub ('GNU LilyPond ([^\n]+)\n', catch_version, p) - x.append ('not found') - - return x[0] + + ls = p.split ('\n') + v= '' + for l in ls: + m = re.search ('GNU LilyPond ([0-9a-z.]+)', p) + if m: + v = m.group (1) + + return v def lilypond_version_check (binary, req): if req[0] <> '@' : diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index 15ce4e86f7..fb6c07ce13 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -17,9 +17,11 @@ $(outdir)/%.ps.gz.omf: %.texi $(call GENERATE_OMF,ps.gz) # Generic rule not possible? -$(outdir)/%/%.html: $(outdir)/%.texi +$(outdir)/%/%.html: $(outdir)/%.texi + $(MAKEINFO) -I $(outdir) --output=$@ --html --no-split --no-headers $< $(MAKEINFO) --output=$@ --html $< + $(outdir)/%.dvi: $(outdir)/%.texi cd $(outdir); texi2dvi --batch $(TEXINFO_PAPERSIZE_OPTION) $(