<div dir="ltr">Tested this on Windows, seems to work fine.  r253501 has a minor fix that was causing a CMake warning, but overall everything works great.  Happy to see progress on this front.<br></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 18, 2015 at 12:47 PM Todd Fiala <<a href="mailto:todd.fiala@gmail.com">todd.fiala@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">BTW if you cook up something on the swig-as-a-service end that ends up working to eliminate the need for swig, I'll be happy to remove the static binding support at that point.<div><br></div><div>-Todd</div></div><div class="gmail_extra"></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 18, 2015 at 12:45 PM, Todd Fiala <span dir="ltr"><<a href="mailto:todd.fiala@gmail.com" target="_blank">todd.fiala@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Nov 18, 2015 at 11:55 AM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">By the way, it would be great if we could kill this modify-lldb-python.py.</div></blockquote><div><br></div></span><div>I'm totally up for that.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">  It seems like a total hackjob, and there's nothing it does that can't be done better by wrapping the lldb module instead of modifying it.<div><br></div><div>For example, it goes through and injects a bunch of methods to classes in the lldb module.  But if, instead of renaming lldb.py to __init__.py, we renamed it to lldb_internal.py, and then we can actually check in an __init__.py that does this:</div><div><br></div><div>from lldb_internal import *</div><div><br></div><div># Loop over each class in lldb_internal, injecting methods</div><div># and modifying the types / classes as necessary</div><div><br></div><div>Then this would be much better, as it eliminates a post processing step and allows easier maintenance of this code.<div><div><br></div></div></div></div></blockquote><div><br></div></span><div>Sounds like a great idea.  I'd love to get rid of some post-processing steps.</div><div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 18, 2015 at 10:37 AM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yea, this is the right one.  Thanks!  I haven't tested this yet, but I will later.  (Our buildbot currently builds with LLDB_DISABLE_PYTHON=1, so if there is a problem with this, the Windows buildbot wouldn't pick it up, although the others probably would)</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 18, 2015 at 10:14 AM Todd Fiala <<a href="mailto:todd.fiala@gmail.com" target="_blank">todd.fiala@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">If I have that right, we're fine.  The prepare_bindings.py still calls modify-python-lldb.py.<div><br></div><div>scripts/prepare_bindings.py is meant to be the same as createSwigBindings.py, and scripts/python/prepare_binding_Python.py is meant to be the same as buildSwigPython.py.</div><div><br></div><div>Once I make sure that I haven't broken anything for anybody with it, I'll get rid of the other scripts.</div></div><div class="gmail_extra"></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 18, 2015 at 10:09 AM, Todd Fiala <span dir="ltr"><<a href="mailto:todd.fiala@gmail.com" target="_blank">todd.fiala@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">You're talking about this change, right?  (I'm looking at it now...)<div><br></div><div><div>commit cc353bbc992ab324aef395c54a2a46fcaaa3855b</div><div>Author: Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></div><div>Date:   Mon Nov 16 22:40:20 2015 +0000</div><div><br></div><div>    Insert the SWIG version into LLDB's __init__.py</div><div><br></div><div>    The goal here is to allow us to add skip / xfail decorators</div><div>    based on SWIG version.</div><div><br></div><div>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/lldb/trunk@253262" target="_blank">https://llvm.org/svn/llvm-project/lldb/trunk@253262</a> 91177308-0d34-0410-b5e6-96231b3b80d8</div></div><div><br></div></div><div class="gmail_extra"><div><div><br><div class="gmail_quote">On Wed, Nov 18, 2015 at 10:07 AM, Todd Fiala <span dir="ltr"><<a href="mailto:todd.fiala@gmail.com" target="_blank">todd.fiala@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Double checking now, if it happens in that lldb-modify script, we're covered.  Otherwise I need to adjust...  (the bulk of the rewrite happened on Friday/Sunday).</div><div class="gmail_extra"><div><div><br><div class="gmail_quote">On Wed, Nov 18, 2015 at 9:47 AM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Just to be sure, did you catch the change I made to the old scripts in the past few days to embed the swig version in the generated lldb.py?  Maybe you did, I just want to make sure that change is in your new version.</div><div><div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 18, 2015 at 9:38 AM Todd Fiala via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: tfiala<br>
Date: Wed Nov 18 11:36:15 2015<br>
New Revision: 253478<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=253478&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=253478&view=rev</a><br>
Log:<br>
Switched cmake build from using buildSwigWrapperClases.py to the cleaned up version.<br>
<br>
This change does not introduce static bindings.  It is simply using<br>
the pylinted cleaned up code in prepare_bindings.py.<br>
<br>
If this breaks anyting, I'll revert immediately and figure out what<br>
needs to be addressed.  I'm looking to wrap up<br>
the cleanup aspect of the code change (pylinted, removal of code that<br>
implements existing python stdlib code, fixes for Xcode adoption, etc.).<br>
<br>
Modified:<br>
    lldb/trunk/CMakeLists.txt<br>
    lldb/trunk/scripts/CMakeLists.txt<br>
<br>
Modified: lldb/trunk/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=253478&r1=253477&r2=253478&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=253478&r1=253477&r2=253478&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/CMakeLists.txt (original)<br>
+++ lldb/trunk/CMakeLists.txt Wed Nov 18 11:36:15 2015<br>
@@ -33,6 +33,7 @@ if (NOT LLDB_DISABLE_PYTHON)<br>
     add_custom_target( finish_swig ALL<br>
         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}" -m<br>
         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py<br>
+        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lldb.py<br>
         COMMENT "Python script sym-linking LLDB Python API")<br>
     # We depend on liblldb being built before we can do this step.<br>
     add_dependencies(finish_swig liblldb lldb-argdumper)<br>
<br>
Modified: lldb/trunk/scripts/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/CMakeLists.txt?rev=253478&r1=253477&r2=253478&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/CMakeLists.txt?rev=253478&r1=253477&r2=253478&view=diff</a><br>
==============================================================================<br>
--- lldb/trunk/scripts/CMakeLists.txt (original)<br>
+++ lldb/trunk/scripts/CMakeLists.txt Wed Nov 18 11:36:15 2015<br>
@@ -18,9 +18,10 @@ add_custom_command(<br>
   DEPENDS ${SWIG_HEADERS}<br>
   DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Python/buildSwigPython.py<br>
   DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Python/modify-python-lldb.py<br>
-  COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/buildSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}" "--prefix=${CMAKE_BINARY_DIR}" "--swigExecutable=${SWIG_EXECUTABLE}" -m<br>
+  COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/prepare_bindings.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}" "--prefix=${CMAKE_BINARY_DIR}" "--swigExecutable=${SWIG_EXECUTABLE}"<br>
   COMMENT "Python script building LLDB Python wrapper")<br>
 set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp PROPERTIES GENERATED 1)<br>
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/lldb.py PROPERTIES GENERATED 1)<br>
<br>
 add_custom_target(swig_wrapper ALL<br>
   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp<br>
<br>
<br>
_______________________________________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a><br>
</blockquote></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div><div dir="ltr">-Todd</div></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div><div dir="ltr">-Todd</div></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div></div><div class="gmail_extra">-- <br><div><div dir="ltr">-Todd</div></div>
</div></blockquote></div></blockquote></div></div></div></div></div>
</blockquote></div></div></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr">-Todd</div></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div></div><div class="gmail_extra">-- <br><div><div dir="ltr">-Todd</div></div>
</div></blockquote></div>