lilypond-auto
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lilypond-auto] Issue 4082 in lilypond: Patch: Reimplement Smobs via tem


From: lilypond
Subject: [Lilypond-auto] Issue 4082 in lilypond: Patch: Reimplement Smobs via templates rather than preprocessor
Date: Wed, 27 Aug 2014 19:24:21 +0000

Status: Started
Owner: ----
Labels: Type-Enhancement Patch-new

New issue 4082 by address@hidden: Patch: Reimplement Smobs via templates rather than preprocessor
https://code.google.com/p/lilypond/issues/detail?id=4082

Reimplement Smobs via templates rather than preprocessor


This consists of the following commits:

    Minor style fixes to some class definitions.


    Don't assign 'safe' values to self_scm_ outside of smobify_self


    Reimplement Smobs via templates rather than preprocessor

    This creates the underlying code for the new implementation without
    converting the bulk of the code (which is left to a script committed
    separately).  The include file ly-smobs.icc is removed completely.  A
    new file smobs.tcc contains generic template instantiations.  The GCC
    implementation works by loading it unconditionally in smobs.hh.
    Depending on the underlying template mechanism, it might be feasible to
    include it into just one compilation unit.

    Where the previous implementation referred to class names passed into
    macros, the typeinfo mechanism of C++ is employed for deriving the
    respective name.  The GCC implementation uses some cursory demangling of
the resulting type id, converting "3Box" into "Box" and similarly.
    Other APIs might warrant different polishing but the type names are
    mostly used for internal purposes and differences are not all that
    problematic.


    Add scripts/auxiliar/smob-convert.sh for one-time C++ conversion

    This script is used for the mechanical stage of converting the Smob
    machinery from working via the C preprocessor to working via C++
    templates.


    Run scripts/auxiliar/smob-convert.sh


The last commit is not included in submission 1 of the patch in order
to make clear which parts of the patch are automatically generated and
which are reasonably subject to individual review/changes.
Submission 1 is obviously not compilable.

The ultimate submission will occur as a branch commit, with the final
commit being a revert of the commit containing the no longer necessary
script.  It may still be useful in the history as a reference for
similar work, and for applying to separately developed existing code
using the Smob mechanism that is in need of merging/conversion.

http://codereview.appspot.com/137780043

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

reply via email to

[Prev in Thread] Current Thread [Next in Thread]