1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Using Clang To Auto-Convert Qt 4 To Qt 5

Compiler

Published on 20 June 2012 03:15 PM EDT
Written by Michael Larabel in Compiler
12 Comments

There's new work underway to take advantage of LLVM's Clang tooling to auto-convert most Qt 4.x code into being Qt 5.0-compatible.

A developer at KDAB has been working on automated porting from Qt 4 to Qt 5 C++ code using Clang, as mentioned in this blog post. "While porting KDE code from Qt 4 to Qt 5, I initially wrote some sed scripts to assist with porting, but then started investigating semantic tooling to help with the task. The result is a tool which can automate with precision some of the boring API renames which are a necessary part of any Qt 4 to 5 port. Initially I called it ‘Captcha’ for ‘Clang Assisted Porting Tool using Compilation, Heuristics and Algorithms’, and because it makes the computer do a better porting job than humans."

This Clang code supports renaming class methods, enums, and functions to become compatible with Qt5 while still maintaining backwards compatibility, etc.

Check out the KDAB blog post for more technical details about this work. The blog post ends with, "This clang based tooling was fun to write and the porting API in clang is certainly interesting (the subject of a future blog post). A tool like this is capable doing many boring parts of what is required in porting, such as renaming methods, and it works quite well, but it will never port from QtWidgets to QML for example. The automatable part of a Qt 4 to 5 port will always be the a subset of the same possibilities. Some existing code will use QRegion::intersect, while others will not. The tool can test the codebase for what is required though of course, so it can be used in a ‘fire and forget’ manner."

This Clang-based automatic code re-factoring is similar to how Google is trying to make C++ more fun.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  2. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
  3. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
  4. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
Latest Linux Articles
  1. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
  2. Testing For The Latest Linux Kernel Power Regression
  3. The Most Energy Efficient Radeon GPU For AMD Linux Gaming
  4. 20-Way Radeon Comparison With Open-Source Graphics For Steam On Linux Gaming
Latest Linux News
  1. A New AMD Catalyst Linux Driver Unofficially Surfaces
  2. LibreOffice Ported To 64-bit ARM (AArch64)
  3. Enlightenment E19 RC3 Shows Off The New Wayland Compositor
  4. Metro Redux Is Going To Require OpenGL 4.x On Linux
  5. Jailhouse v0.1 Released As A Basic Hypervisor For Linux
  6. Google's Chromebook "Samus" Now Supported By Coreboot
  7. Chrome 38 Now In Beta With Exciting Advancements
  8. Ubuntu's Utopic Unicorn 14.10 Beta 1 Released
  9. Genode OS 14.08 Has New GUI Architecture, Pluggable VFS
  10. Another Intel Linux Power Regression Is Being Investigated
Latest Forum Discussions
  1. Catalyst 14.201.1008
  2. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs
  3. It's Now Possible To Play Netflix Natively On Linux Without Wine Plug-Ins
  4. Users defect to Linux as OpenBSD removes Lynx from base system
  5. Updated and Optimized Ubuntu Free Graphics Drivers
  6. Canonical Joined The Khronos Group To Help Mir/Wayland Drivers
  7. Radeon HD5670 and Ubuntu 14.04
  8. AMD Releases UVD Video Decode Support For R600 GPUs