Reviewers: , Message: Greetings everybody, I realize that this is a rather large patch; at home I had divided it into smaller, more manageable commits such as 0001-C-Scheme-consistency-use-ly_is_eol.patch 0002-C-Scheme-consistency-use-scm_is_false.patch 0003-C-Scheme-consistency-use-to_boolean.patch 0004-C-Scheme-consistency-use-SCM_UNPACK.patch 0005-C-Scheme-consistency-use-scm_is_eq.patch 0006-C-Scheme-consistency-use-ly_is_exact.patch 0007-C-Scheme-consistency-use-ly_is_undefined.patch
Not sure how to upload these to Rietveld without opening many different issues, though. Besides, even though the changes are numerous, they are tiny and pretty straightforward for the most part. Cheers, Valentin. Description: Replace C++ (in)equality checks with proper SCM syntax This commit replaces the most straightforward situations where two SCM objects are compared. Here are the basic replacements I used: x == SCM_BOOL_F ---> scm_is_false (x) x == SCM_BOOL_T ---> to_boolean (x) (I’d rather use something more straightforward such as scm_is_true (x), but accordingly to the CG this is The LilyPond Way®.) x == (SCM y) ---> scm_is_eq (x, y) (often used with ly_symbol2scm) I’m also adding some functions that Guile v1 does not provide: x == SCM_EOL ---> ly_is_eol (x) x == SCM_UNDEFINED ---> ly_is_undefined (x) (scm_exact_p (x)) == SCM_BOOL_T ----> ly_is_exact (x) Finally, I replaced (!cached) with (!SCM_UNPACK (cached)) in lily-guile-macros.hh, as has been suggested once by David. Please note that this commit does not handle some situations I’m less comfortable with (namely those involving scm_c_memq, scm_assq or scm_hashq_get_handle), and some scm_*_p checks for which there isn’t a ly_is_* replacement yet (to wit, scm_hash_table_p, scm_promise_p, and scm_variable_bound_p). Those should be dealt with later (preferably with help from more experienced people than yours truly). Please review this at https://codereview.appspot.com/226840043/ Affected files (+472, -446 lines): M lily/accidental-engraver.cc M lily/accidental-placement.cc M lily/align-interface.cc M lily/ambitus-engraver.cc M lily/auto-beam-engraver.cc M lily/axis-group-interface.cc M lily/bar-engraver.cc M lily/bar-number-engraver.cc M lily/beam.cc M lily/beam-engraver.cc M lily/break-align-engraver.cc M lily/break-alignment-interface.cc M lily/break-substitution.cc M lily/chord-name-engraver.cc M lily/clef-engraver.cc M lily/constrained-breaking.cc M lily/context.cc M lily/context-def.cc M lily/context-mod-scheme.cc M lily/context-property.cc M lily/context-scheme.cc M lily/cue-clef-engraver.cc M lily/directional-element-interface.cc M lily/dispatcher.cc M lily/dot-column.cc M lily/double-percent-repeat-engraver.cc M lily/drum-note-engraver.cc M lily/duration-scheme.cc M lily/dynamic-engraver.cc M lily/engraver.cc M lily/engraver-group.cc M lily/font-interface.cc M lily/general-scheme.cc M lily/glissando-engraver.cc M lily/grob.cc M lily/grob-interface.cc M lily/grob-property.cc M lily/grob-scheme.cc M lily/include/lily-guile.hh M lily/include/lily-guile-macros.hh M lily/key-engraver.cc M lily/lexer.ll M lily/ligature-engraver.cc M lily/lily-guile.cc M lily/lily-lexer.cc M lily/lily-parser.cc M lily/lily-parser-scheme.cc M lily/line-interface.cc M lily/line-spanner.cc M lily/mark-engraver.cc M lily/measure-grouping-spanner.cc M lily/mensural-ligature.cc M lily/metronome-engraver.cc M lily/midi-item.cc M lily/module-scheme.cc M lily/multi-measure-rest.cc M lily/multi-measure-rest-engraver.cc M lily/music.cc M lily/new-fingering-engraver.cc M lily/note-collision.cc M lily/open-type-font.cc M lily/output-def.cc M lily/output-def-scheme.cc M lily/page-breaking.cc M lily/page-layout-problem.cc M lily/page-spacing.cc M lily/page-turn-engraver.cc M lily/page-turn-page-breaking.cc M lily/pango-font.cc M lily/pango-select.cc M lily/paper-book.cc M lily/paper-column.cc M lily/paper-column-engraver.cc M lily/paper-outputter.cc M lily/paper-score.cc M lily/paper-system.cc M lily/parse-scm.cc M lily/parser.yy M lily/part-combine-engraver.cc M lily/part-combine-iterator.cc M lily/percent-repeat-engraver.cc M lily/piano-pedal-engraver.cc M lily/pitched-trill-engraver.cc M lily/prob.cc M lily/prob-scheme.cc M lily/profile.cc M lily/program-option-scheme.cc M lily/quote-iterator.cc M lily/repeat-acknowledge-engraver.cc M lily/score.cc M lily/score-performer.cc M lily/score-scheme.cc M lily/script-engraver.cc M lily/script-interface.cc M lily/self-alignment-interface.cc M lily/simple-closure.cc M lily/simple-spacer.cc M lily/simple-spacer-scheme.cc M lily/skyline.cc M lily/slur.cc M lily/slur-configuration.cc M lily/slur-scoring.cc M lily/smobs.cc M lily/spacing-determine-loose-columns.cc M lily/staff-performer.cc M lily/staff-spacing.cc M lily/stem.cc M lily/stem-tremolo.cc M lily/stencil.cc M lily/stencil-expression.cc M lily/stencil-integral.cc M lily/stencil-interpret.cc M lily/stencil-scheme.cc M lily/stream-event.cc M lily/stream-event-scheme.cc M lily/system.cc M lily/system-start-delimiter.cc M lily/system-start-delimiter-engraver.cc M lily/tab-note-heads-engraver.cc M lily/tie-formatting-problem.cc M lily/tie-specification.cc M lily/time-signature-engraver.cc M lily/translator-ctors.cc M lily/translator-group-ctors.cc M lily/ttf.cc M lily/tuplet-bracket.cc M lily/vaticana-ligature.cc M lily/vaticana-ligature-engraver.cc M lily/volta-engraver.cc M lily/volta-repeat-iterator.cc _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel