<div dir="ltr"><div>Hi Jeff,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 4, 2021 at 5:25 PM Jeff Becker <<a href="mailto:jbecker@fiveviews.com">jbecker@fiveviews.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="MsoNormal">Hello, everyone.   <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Sorry for disappearing a few months ago without resolving the questions that I had. I have been taking care of issues in my personal life which I won’t go into here.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’ve had time to consider what I would do with the project that I have been working on and inquiring about here.  Seems I have a few options:<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>1)<span style="font:7pt "Times New Roman"">      </span></span><u></u>Make the existing Win32 code work for what I’m doing;</p></div></div></blockquote><div>The existing Win32 is good and complete. It can do everything you need from a traditional Windows standpoint. It was recently improved with better Unicode path support. I'm happy to help you work on building it, if you have trouble. I do have a desktop, whence I'm writing you this message now, that is running Windows 10. I know at least one of the BibleTime developers also runs Windows to generate release builds on that platform. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>2)<span style="font:7pt "Times New Roman"">      </span></span><u></u>Convert what I have to the Linux platform and use what’s actually available and current in the SWORD Project;</p></div></div></blockquote><div>This will be the path of least resistance from the SWORD side. I have no knowledge into what else you're doing to know how it will affect that. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>3)<span style="font:7pt "Times New Roman"">      </span></span><u></u>Work to bring the work you all have done into the current Windows / .Net Framework environment;</p></div></div></blockquote><div>This would be a good route. I don't believe anyone has done it, though we do have active bindings for a large variety of other platforms already: Python, Perl, JNI, <That thing Troy uses for Web>, Objective-C. We do know how to get bindings done, so you're welcome to take this path. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>4)<span style="font:7pt "Times New Roman"">      </span></span><u></u>Give up and go another route;</p></div></div></blockquote><div>Happy hunting if this is your route! </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’m leaning toward the third, but I don’t want to step on any toes. It will involve:<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Work out design issues</b> (such as .Net only or .Net as a wrapper, Azure compatibility)</p></div></div></blockquote><div>I would suggest a wrapper. Rewrites of SWORD tend to never reach feature completeness because there is OODLES of acknowledgement of corner cases in Sword that it already handles.  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Create MS VC++ Project(s)</b> / Solution</p></div></div></blockquote><div>This can be done, but you can also build off the CMake tooling that's already in place if you would like to. There's already bits in there to handle Python and Perl bindings being build from CMake, so it can probably handle adding some .Net wrapping. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Import code pages</b> (mostly .cpp and .h pages presumably)<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Work out build issues</b> for both <b>32 and 64 bit</b> platforms</p></div></div></blockquote><div>The library currently handles both of these very smoothly across a large number of architectures. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Test</b> the results (beginning with my own existing projects)<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Share</b> the code, preferably using a method you all are used to using</p></div></div></blockquote><div>The official SVN is where all the magic happens. Most of us are happy to work in a git mirror while something matures and then eventually shine it up to get it submitted to Troy for inclusion in the SVN. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span style="font-family:Symbol"><span>·<span style="font:7pt "Times New Roman"">         </span></span></span><u></u><b>Maintain</b> the code (including changes to the main code base), possibly as a new branch of the existing code</p></div></div></blockquote><div>Hopefully we can find a way to avoid a permanent branch. Other bindings live in a bindings directory in the source tree and that is how they stay up to date. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’m willing to take this on if it’s something that will be used by others and, hopefully, supported by others as well.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I have to admit that my VC++ skills need improvement since I spend most of my time in C#.  But it’s a welcome chance to build my skill set. But, of course, any help would be greatly appreciated, especially in understanding both the current state and plans for the existing code base.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Regarding the other options listed above:<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>1)<span style="font:7pt "Times New Roman"">      </span></span><u></u>I have successfully accessed the sword.dll file from C#.  It required creating two separate wrapper classes and obtaining the mangled name using a utility provided with Visual Studio.  There are shortcomings to this approach including extensive coding and performance hits.  We can discuss those if a decision is made to move forward;<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>2)<span style="font:7pt "Times New Roman"">      </span></span><u></u>I think I individually, we as contributors and potential contributors, as well as others who will come on later will all lose out without a viable, up-to-date interface for Windows VS development;</p></div></div></blockquote><div>Prophecies of our doom have been often repeated, being aimed at everything from our website (JSP-based) to our hosting (self-hosted SVN) to our language (C and C++). I look forward to this not panning out, either. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>3)<span style="font:7pt "Times New Roman"">      </span></span><u></u>Bringing the code into current Windows, Visual Studio and .Net Framework development;<u></u><u></u></p><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><span>4)<span style="font:7pt "Times New Roman"">      </span></span><u></u>I like what’s been accomplished in the SWORD Project and I want to both use it and contribute to it.</p></div></div></blockquote><div><br></div><div>--Greg </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_6606499261712811467WordSection1"><p class="gmail-m_6606499261712811467MsoListParagraph"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I look forward to hearing from you all, especially those who currently work in Windows development with this code.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Jeff Becker<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div>_______________________________________________<br>
sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org" target="_blank">sword-devel@crosswire.org</a><br>
<a href="http://crosswire.org/mailman/listinfo/sword-devel" rel="noreferrer" target="_blank">http://crosswire.org/mailman/listinfo/sword-devel</a><br>
Instructions to unsubscribe/change your settings at above page</blockquote></div></div>