Talin
2011-Feb-12 18:28 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
On Sat, Feb 12, 2011 at 6:40 AM, Garrison Venn <gvenn.cfe.dev at gmail.com>wrote:> Looks cool Talin. > > Personally it would be nice if it was checked into llvm.org, but is > wxWidgets LGPL like license > an issue for llvm's repository? >There should be no problem with the license. wxWidgets is indeed distributed under a modified version of the LGPL (with a special exception to allow people to distribute binaries of their app without requiring the source). The LGPL allows derived works to be distributed under a more permissive license (such as BSD-like licenses) as long as all of the license terms are *less restrictive* than the LGPL. Also, since we're talking LGPL, not GPL, the "derived work" does not include applications based on the library, it only includes modifications to the library itself. Since LLBrowse does not include any wxWidgets source code, the source archive can be distributed under a BSD license. Binaries of LLBrowse can be distributed freely, without source, due to the special exception in the wxWidgets license. Thus, even though the University of Illinois license is not GPL-compatible (because of the copyright and endorsement clauses), this should not matter. Here's a page which lists which open source licenses are GPL-compatible: http://www.gnu.org/licenses/license-list.html<http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses>> Anyway I would be interested in a copy otherwise under a BSD like license. > > Thanks in advance > > Garrison > > On Feb 12, 2011, at 2:22, Talin wrote: > > I've written a little GUI application that displays an LLVM module as an > expandable tree, which can be useful for examining the module's contents. > Some features: > > - Based on wxWidgets, so it's completely cross-platform. > - CMake build script can locate both LLVM and wxWidgets installations > automatically. > - Loads either .ll or .bc files. > - Supports browsing of LLVM types, variables, functions, aliases, and > metadata. I'm working on supporting a more structured view of DWARF DIEs, > but that is not complete. > - Tree nodes are created lazily as needed. > - The tree node system is highly extensible, each different LLVM object > type is represented by a tree node class, adding new node classes is > extremely easy. > - The code is very straightforward and easy to read. > - All image resources are embedded in the final executable, so the > compiles program is just a single binary file, very easily installed. > > This is still a work in progress, but I think it's ready for people to > start hacking on. > > If there is interest, I can check the code into the llvm.org svn somewhere > - I just need to know where to put it. Otherwise, I'm happy to email a zip > archive to folks who are interested. I'm willing to release the code under > whatever license is most convenient. > > Here's a screenshot of what it looks like: > > <llbrowse.png> > > And here's what the node class for displaying variables looks like, as an > example: > > class VariableItem : public TreeItemBase { > public: > VariableItem(const llvm::Module* module, const llvm::GlobalVariable* var) > : module_(module), var_(var) {} > > // Overrides > > int GetIcon() const; > wxString GetCaption() const; > void CreateChildren(wxTreeCtrl* tree, const wxTreeItemId& id); > bool CanCreateChildren() const; > void ShowDetails(DetailsView* detailsView); > > private: > const llvm::Module* const module_; > const llvm::GlobalVariable* const var_; > }; > > > -- > -- Talin > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > >-- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/79fa90bb/attachment.html>
Chris Lattner
2011-Feb-13 02:03 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
On Feb 12, 2011, at 10:28 AM, Talin wrote:> On Sat, Feb 12, 2011 at 6:40 AM, Garrison Venn <gvenn.cfe.dev at gmail.com> wrote: > Looks cool Talin. > > Personally it would be nice if it was checked into llvm.org, but is wxWidgets LGPL like license > an issue for llvm's repository? > > There should be no problem with the license. wxWidgets is indeed distributed under a modified version of the LGPL (with a special exception to allow people to distribute binaries of their app without requiring the source). The LGPL allows derived works to be distributed under a more permissive license (such as BSD-like licenses) as long as all of the license terms are *less restrictive* than the LGPL. Also, since we're talking LGPL, not GPL, the "derived work" does not include applications based on the library, it only includes modifications to the library itself.Having GPL and other licenses in llvm's repositories is fine, dragonegg, llvm-gcc and the llvm-testsuite each have GPL code in them. Just keep repositories like LLVM, Clang, LLDB, etc pure UIUC license. Before checking this in to a new module, please whip up some web pages that document it. Thanks Talin! -Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/c486a05a/attachment.html>
Talin
2011-Feb-13 02:18 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
On Sat, Feb 12, 2011 at 6:03 PM, Chris Lattner <clattner at apple.com> wrote:> > On Feb 12, 2011, at 10:28 AM, Talin wrote: > > On Sat, Feb 12, 2011 at 6:40 AM, Garrison Venn <gvenn.cfe.dev at gmail.com> > wrote: > >> Looks cool Talin. >> >> Personally it would be nice if it was checked into llvm.org, but is >> wxWidgets LGPL like license >> an issue for llvm's repository? >> > > There should be no problem with the license. wxWidgets is indeed > distributed under a modified version of the LGPL (with a special exception > to allow people to distribute binaries of their app without requiring the > source). The LGPL allows derived works to be distributed under a more > permissive license (such as BSD-like licenses) as long as all of the license > terms are *less restrictive* than the LGPL. Also, since we're talking LGPL, > not GPL, the "derived work" does not include applications based on the > library, it only includes modifications to the library itself. > > > Having GPL and other licenses in llvm's repositories is fine, dragonegg, > llvm-gcc and the llvm-testsuite each have GPL code in them. Just keep > repositories like LLVM, Clang, LLDB, etc pure UIUC license. > > Before checking this in to a new module, please whip up some web pages that > document it. Thanks Talin! > > Do you have any suggestions as to where in the hierarchy this should go?What kind of docs are you looking for, user docs or developer docs? The program only has one command ("load module"), the rest is just displaying read-only data in tree form. BTW, I've added more support for displaying DWARF DIEs - here's a screenshot: [image: llbrowse2.png] -- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/cca03650/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: llbrowse2.png Type: image/png Size: 48410 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110212/cca03650/attachment.png>
Possibly Parallel Threads
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules