[3.0 Release] Call for External Open Source Projects Using LLVM 3.0

Good day!

To get ready for the release, we need to make sure that the list of external open source projects using LLVM 3.0 (file:///Volumes/Sandbox/llvm/llvm.src/docs/ReleaseNotes.html#externalproj) is up to date. Please send me an email with the project's name and a short description of it. Alternatively, if the project was commented out and you would still like to be listed, just tell me and I'll uncomment the blurb. :slight_smile:

Share and enjoy!
-bw

Ahem...and by the above URL, I of course meant:

  http://llvm.org/docs/ReleaseNotes.html#externalproj

:slight_smile:

-bw

Hi Bill,

project name: ClamAV

Short description (based on LLVM 2.8 release notes) below.
(note that ClamAV's embedded copy of LLVM is still at 2.8, since 2.9 and 3.0 have buggy SSP).

<a href="http://www.clamav.net">Clam AntiVirus</a> is an open source (GPL) anti-virus toolkit for UNIX,
designed especially for e-mail scanning on mail gateways.
Since version 0.96 it has <a href="http://vrt-sourcefire.blogspot.com/2010/09/introduction-to-clamavs-low-level.html">bytecode signatures</a>
that allow writing detections for complex malware.
It uses LLVM's JIT to speed up the execution of bytecode on X86, X86-64, PPC32/64, falling back to its own interpreter otherwise.
The git version was updated to work with LLVM 3.0.

Best regards,
--Edwin

Hi Bill,

Name: Mono (http://www.mono-project.com/)
Description: An open source, cross-platform implementation of C# and
the CLR that is binary compatible with Microsoft.NET. Has an optional,
dynamically-loaded LLVM code generation backend in Mini, the JIT
compiler.

Note that we use a Git mirror of LLVM with some patches. See:
https://github.com/mono/llvm

Regards,
Alex

Name: AddressSanitizer, a fast memory error detector.
URL: http://code.google.com/p/address-sanitizer/
Description: AddressSanitizer uses compiler instrumentation and a specialized malloc library to find C/C++ bugs such as use-after-free and out-of-bound accesses to heap, stack and globals. The key feature of the tool is speed: the average slowdown introduced by AddressSanitizer is less than 2x.

–kcc

Another one:

Name: SDC - The Stupid D Compiler (https://github.com/bhelyer/SDC)
Description: A project seeking to write a self-hosting compiler for
the D programming language, without using the frontend of the
reference compiler (DMD).

Regards,
Alex

Okay. Added.

-bw

The ZooLib C++ Cross-Platform Application Framework.

    http://www.zoolib.org/

ZooLib is Open Source under the MIT License. It provides GUI,
filesystem access, TCP networking, thread-safe memory management,
threading and locking for Mac OS X, Classic Mac OS, Microsoft Windows,
POSIX operating systems with X11, BeOS, Haiku, Apple's iOS and
Research in Motion's BlackBerry.

My current work is to use CLang's static analyzer to improve ZooLib's
code quality. I also plan to set up LLVM compiles of the demo
programs and test programs using CLang and LLVM on all the platforms
that CLang, LLVM and ZooLib all support.

Name: ThreadSanitizer, a data race detector.
Description:
ThreadSanitizer is a data race detector for (mostly) C and C++ code,
available for Linux, Mac OS and Windows.
On different systems we use binary instrumentation frameworks
(Valgrind, Pin and DynamoRio) as frontends that generate the program
events for the race detection algorithm.
On Linux there's an option of using LLVM-based compile-time instrumentation.

Oh, and the project page: http://code.google.com/p/data-race-test/

I'm planning to both build on and to target the Haiku operating system
with CLang and LLVM, but I am a long way from actually doing so yet.

    http://www.haiku-os.org/

Haiku is an Open Source clone of BeOS 5 Pro. The default build
provides two ABIs, one built with GCC 2.95.3 for binary compatibility
with BeOS 5 applications, and the other with GCC 4 for Haiku-only
apps.

I am not yet accepted as a Haiku developer though so it probably would
not yet be completely cool to list it as a project that uses LLVM.
This is just a personal experiment; from looking at their existing C++
source code, I expect that the static analyzer will find lots of code
that could be improved.

My hope is that if I do get CLang and LLVM to work under Haiku, I can
get the other Haiku developers to at least use the analyzer in their
day-to-day work. It has done wonders for my iOS development.

I was a huge fan of BeOS back in the day. It is still quite amazing
technically and with respect to usability, but I am afraid Jean-Louis
Gassee could not market his way out of a wet paper bag.

My addition:

Name: include-what-you-use (http://code.google.com/p/include-what-you-use)
Description: A tool to ensure that a file directly #includes all .h files
that provide a symbol that the file uses. It also removes superfluous
#includes from source files.

craig