Paul Morris [Mon, 29 Aug 2016 04:27:19 +0000 (00:27 -0400)]
Issue 4962: Web: home page: add example image, reduce news to headlines
The example image is the excerpt from Bach BWV 861 from the essay.
Anchor links are used to link to specific examples on the examples
page. The news entries on the home page are reduced to just a list
of headlines that link to specific entries on the 'Old News' page
(under 'Community'). And that page is renamed to just 'News'.
Mark Knoop [Thu, 8 Sep 2016 17:56:16 +0000 (18:56 +0100)]
Keep a staff alive with multiple layers
This allows the `VerticalAxisGroup.remove-layer'
property to accept a list of values. The layer
will stay alive with any other member of the
Keep_alive_together_engrave group with a
remove-layer value in that list.
The principal reason for this patch was to
allow the use of MarkLine contexts in a Frenched
score, where the context should stay alive with
any single staff in a StaffGroup.
This implementation should also allow additional
flexibility with ossia and divisi staves.
David Kastrup [Fri, 2 Sep 2016 21:11:53 +0000 (23:11 +0200)]
Issue 4965: Create and use Grob::parent_relative
This function checks for the existence of a Grob parent before
calculating a coordinate relative to it. This should hopefully
clean up the most relevant problems caused by issue 4814
and the original GCC 6 optimization causing it.
The function loc_on_music has been renamed to loc_on_copy and has been
changed to create a copy for a number of different expression types.
This makes \xxx.yyy behave similar to \xxx-yyy with regard to copying
the original expression in most cases, and it also helps with default
arguments of music/void/event/scheme functions of more types than just
music.
Mark Knoop [Tue, 2 Aug 2016 09:26:46 +0000 (10:26 +0100)]
Doc: CG update Indenting with vim section
Suggestions for .vimrc did not produce correct indentation of C++
code, and also included personal and irrelevant settings such as
statusline and incsearch. I have replaced them with the settings
in the GNU GCC Wiki which do correctly indent. Also changed
suggested Scheme settings to use setlocal, and added a section of
settings for Texinfo files.
David Kastrup [Thu, 21 Jul 2016 09:51:44 +0000 (11:51 +0200)]
Issue 4941/1: Optional fraction after \afterGrace command
\afterGrace had its fraction determining the position of the aftergrace
notes hardwired to be read from the parser variable afterGraceFraction.
This change here allows for optionally specifying it right as the first
argument of the \afterGrace command.
Issue 4938 (2/3) Refactor handling of MIDI control changes
Handle the MIDI control value initialization from context properties
(Staff_performer::new_audio_staff), control value changes
(Midi_control_function_performer::announce_function_value_change), and
value conversion for output
(Midi_control_function_value_change::to_string) in the new
Midi_control_change_announcer class.
All MIDI control changes are now encoded using
{Audio,Midi}_control_change items. This change makes the old
{Audio,Midi}_control_function_value_change classes obsolete.
When optimizing, GCC now assumes the this pointer can never be null,
which is guaranteed by the language rules. Invalid programs which
assume it is OK to invoke a member function through a null
pointer (possibly relying on checks like this != NULL) may crash or
otherwise fail at run time if null pointer checks are optimized
away. With the -Wnull-dereference option the compiler tries to warn
when it detects such invalid code.
If the program cannot be fixed to remove the undefined behavior then
the option -fno-delete-null-pointer-checks can be used to disable
this optimization. That option also disables other optimizations
involving pointers, not only those involving this.
As a consequence, we cannot call a member function on a prospective null
pointer (which actually is a bad idea for a number of other reasons,
like when anything tries accessing the vtable) and then try sorting out
the condition in the routine itself.
This problem was first observed with Fedora 24. The Ubuntu GCC6
prerelease does not show this problem; presumably the respective
optimization has been disabled in the Ubuntu/Debian packaging because of
affecting other programs.
Commit-message-by: David Kastrup <dak@gnu.org> Signed-off-by: David Kastrup <dak@gnu.org>