<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<style>body{font-family:-apple-system,Helvetica,Arial,sans-serif;}blockquote{margin:0;padding:0 0 0 12px;border-left:1px solid #aaa;color:#aaa;}hr.unibox-forward{border:0;color:#888;background-color:#888;height:1px;}</style>
</head>
<body>Can we hope for a ruby-kf5?<br><br>Sent with <a href="https://www.uniboxapp.com/t/isig">Unibox</a><div><br></div>
<div><br></div>
<blockquote type="cite">
<div>On Mar 27, 2016, at 10:45 AM, Scott Kitterman <kde@kitterman.com> wrote:</div>
<div><br></div>
<div style="font-family: Times; line-height: normal;">On Saturday, March 26, 2016 10:30:18 PM Shaheed Haque wrote:</div>
<blockquote style="font-family: Times; line-height: normal; margin: 16px 40px;">
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">Hi all,</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">I've given up on trying to get the twine2 PyKDE bindings generator<br style="font-family: Times; line-height: normal;">working [1] because not only is the code there broken, but it seems a<br style="font-family: Times; line-height: normal;">Sysiphusian task to maintain a C++ parser. Instead, a few evenings<br style="font-family: Times; line-height: normal;">with clang 3.9 have yielded what I hope is the basis of a way forward:<br style="font-family: Times; line-height: normal;">about 800 lines of Python code [2] which can already create 684 .sip<br style="font-family: Times; line-height: normal;">files [3].</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">What I hope is important about the new tool is that it is documented,<br style="font-family: Times; line-height: normal;">and has a rule-driven approach to adding the SIP annotations which<br style="font-family: Times; line-height: normal;">should ensure that the bindings are easier to maintain once we<br style="font-family: Times; line-height: normal;">actually get them working.</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">The current status is:</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"> #1 I have not tried to actually run the SIP compiler :-).</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"> #2 I have not checked whether the tool is failing to process some<br style="font-family: Times; line-height: normal;">.h files (i.e. I have not checked whether I have all the relevant .h<br style="font-family: Times; line-height: normal;">headers, or whether the new tool is failing on some .h files).</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"> #3 I have toyed with, but not mounted a full attack on, the SIP<br style="font-family: Times; line-height: normal;">annotations problem (see below)</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"> #4 I have not tried to map the KDE5 module naming scheme to<br style="font-family: Times; line-height: normal;">anything in Python.</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"> #5 No integration with CMake and the rest of the KDE build system.</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">On the annotations problem, looking at PyKDE4 as my guide, I frankly<br style="font-family: Times; line-height: normal;">don't understand when to use /Transfer/ instead of /TransferThis/, or<br style="font-family: Times; line-height: normal;">why some references parameters have a /In/ and others a /Out/ or<br style="font-family: Times; line-height: normal;">whatever. If anybody can actually explain, that would be great. In any<br style="font-family: Times; line-height: normal;">event, I am hopeful that the structure of the rules engine [4] will<br style="font-family: Times; line-height: normal;">make this tractable, but I'd really prefer not to blindly match what I<br style="font-family: Times; line-height: normal;">see in PyKDE4!!!</div>
</blockquote>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">This is great. I did take a run at using twine2 and never got anywhere with <br style="font-family: Times; line-height: normal;">it either.</div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">Due to the Kf5, Plasma, Applications split, I would strongly recommend not <br style="font-family: Times; line-height: normal;">calling what you're doing PyKDE5 as KDE5 is not a thing. I'd suggest starting <br style="font-family: Times; line-height: normal;">with binding the Kf5 modules and calling that PyKf5. </div>
<div style="font-family: Times; line-height: normal;"><br style="font-family: Times; line-height: normal;"></div>
<div style="font-family: Times; line-height: normal;">Scott K<br style="font-family: Times; line-height: normal;">_______________________________________________<br style="font-family: Times; line-height: normal;">Kde-bindings mailing list<br style="font-family: Times; line-height: normal;">Kde-bindings@kde.org<br style="font-family: Times; line-height: normal;">https://mail.kde.org/mailman/listinfo/kde-bindings</div>
</blockquote>
</body>
</html>