kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #41229
Re: VECTOR2I and VECTOR2D
Hi Simon,
Thanks for the update. I will continue with my work as planned. I
think the only conflict will be in the include/convert_to_biu.h which
will only be the schematic units section.
Cheers,
Wayne
On 6/25/2019 3:16 PM, Simon Richter wrote:
> Hi Wayne,
>
> On Tue, Jun 25, 2019 at 12:36:36PM -0400, Wayne Stambaugh wrote:
>
>> I guess I should comment on this seeing that I am the project leader. I
>> am fine with refactoring as long as it's an improvement over existing
>> code.
>
> The main improvement is going to be that we can dump the preprocessor magic
> for the internal units, which then allows us to share binary code between
> different kifaces, so we can turn common into a shared library.
>
> With that:
>
> - binary size is halved
> - qa_common tests can be merged
> - tests can be linked against a shared library (way faster)
> - the python module can be linked against a shared library
> - we no longer have different functions with the same name (great for
> debugging)
>
> So yes, I think that'd be worth it. Getting nice unit names and some type
> safety is just the icing on the cake (but necessary for refactoring, so the
> compiler can tell us where the next change needs to be made).
>
>> What changes are you planning for units and when do you expect to have
>> this done? I just branched myself to port the schematic internal units
>> to 100nm in preparation for the new file formats so I'm sure there is
>> going to be conflicts. If you are almost ready to merge, I can wait but
>> I'm ready to get started on this so I would rather not wait too long.
>
> My approach for the length units can be merged incrementally, so there is
> an intermediate stage where it will convert between "old" and "new"
> internal units at the boundaries (by multiplying or dividing with the
> appropriate factor according to the -D flag from the command line) and
> issue a warning "refactor here".
>
> So I can effectively rebase my branch on top of whatever changes you have,
> the compatibility code will keep it working. Merging would happen in
> multiple stages anyway, with the compatibility code remaining in place
> until everyone's development branches are merged or rebased.
>
> That's why I listed
>
>>> Replacing points will be too big to do in a single commit, so:
>>>
>>> - create strong types for lengths and points [needs rework]
>>> - literal handling with unit suffix [mostly done]
>>> - compatibility code for automatic conversion to existing formats [mostly
>>> done]
>>> - piecewise replacement of existing coordinate code
>>> - remove compatibility code
>>> - remove old code
>>> - remove -DEESCHEMA, -DPCBNEW etc.
>>> - merge pcbcommon into common
>
> Each of these steps live in separate commits, and every commit takes us
> from a working state to another working state.
>
> Simon
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
References