Name:
Andrej Belym
Contact/Email:
white.wolf.2105@gmail.com; wolf2105 on irc.debian.org#debian-soc IRC
Background:
I'm a 18-year-old second-year student at Tula State University in Tula, Russia, UTC +4.
I use Linux about 4 years. I've used Ubuntu, Debian, Mandriva, ?OpenSuse, Gentoo, now my preferred distribution is Arch. Also I have interest in *BSD and Minix. I played with Plan9 and found that it's very wonderful and perspective.
I have skills in C, Python (and have some expirience in writing C-extensions for Python), lesser in C++, basic skills in Haskell, x86 assembler (Intel(YASM) and AT&T(GAS) syntax). At our university we have extensive study in Pascal & Delphi; in final of previous semester I've written with Delphi program that performs a spectral analysis with Fast Fourier Transform on WAV file, checks frequencies corresponding to notes, and writes it to MIDI file.
I have experience in HTML/CSS/JavaScript (created site for my friends). Also last semester I've written reports for labs with LaTeX.
I like experiment and solve complex problems.
Also, I've compiled libc++ and libc++abi with clang, and their unittests. libc++abi tests runs nice, 100% tests passed. Many atomic libc++ and part of locale tests was failed, and that looks like official tests result(not all parts of library are fully implemented yet), but also many thread tests and some strings tests was failed. Total failed 223 of 4103 tests, it's about 5.4%.
Project title:
Provide an alternative to libstdc++ with libc++.
* Project details: LLVM project introduced libc++ - new C++ standart library that aims on extensive C++0x (C++11) support, and libc++abi - ABI layer for libc++.
libc++abi realizes ABI (low-level standart realization details) and provides to high level, main library, lot of low-level platform-dependet functions and symbols, that allow made main part (libc++) more platform-independet. This functions control implicit memory allocation for virtual method tables, low-level exception handling and more. cxx can co-exists with libstdc++ realization of ABI, but 'native' would better and enables avoid dependency of libstdc++.
libc++ realizes standard classes and functions, basing on ABI.
libc++ has also great features as fast execution, minimal memory use, fast compile times and binary compatibility with GNU libstdc++.
Currently libc++ officially is supported on Mac OS X 10.6-10.7 only.
In context of this project libc++ will be ported and packaged to Debian GNU/Linux, kFreeBSD and Hurd (it is highlevel port and mustn't depend on kernel type,it simply needs more testing). Library will be ported and tested for support both g++ and clang++ compilers. Also it will be packaged with support of update-alternatives mechanism and will give possibility to users switch easy between current GNU libstdc++ and new libc++.
Synopsis:
Aim of this project is porting and packaging LLVM project libc++ for providing it as standard C++ library instead of GNU libstdc++ with saved binary compatibility, on some platforms, and allow users switch easy between those libraries.
Benefits to Debian:
libc++ is better as C++ standart library than GNU libstdc++ in some things .
libc++ designed from scratch for support newest standart C++0x (C++11) that provide many features in standard library as threading support, tuples, hash tables and regular expresions and more.
libc++ is highly integrated with LLVM.
Also, there are reports that programs linked with libc++ are compiled faster than with GNU libc++.
Also Debian will become famous as the first Linux distribution that has ported libc++.
Deliverables:
ported and packaged libc++ library with update-alternatives support as C++ standard library on Debian GNU/Linux, kFreeBSD and Hurd.
Project schedule:
[April]
Setup work and build environments. Learning update-alternatives. Understanding differences between Debian GNU/Linux, kfreebsd and Hurd. First look at libc++.
[May 1 - May 20]
Porting and compiling libc++ and unit tests.
[May 20 - June 1]
Checking source compatibility. Compiling various programs both with clang & GCC. Fixing bugs.
[June 1 - June 10]
Checking ABI compatibility. Fixing bugs.
[June 10 - July 1]
Packaging without update-alternatives support.
[July 1 - July 9]
Preparing to mid-term evaluation. Extensive testing and checking.
At this point must be created package without alternatives support that replaces libstdc++ and works well.
[July 9 - July 25]
Realizing update-alternatives support.
[July 25 - August 5]
Porting to kFreeBSD and Hurd.
[August 5 - August 12]
Cleaning and repackaging.
[August 12 -August 20]
Final testing, final evaluation.
Exams and other commitments:
I have 4 exams in period of 6-25 June, but there is no trouble for me.
Other summer plans:
I have no extra plans at this summer.
Why Debian?:
Debian is a one of leading Open Source and Free Software project, it's a best GNU/Linux distribution for home and enterprise users, balanced between stability and innovations.
Debian ported to huge number of hardware platforms. Also now Debian is not only Linux distribution because it has FreeBSD and Hurd kernels. Debian is great unique project, and work in Debian will give me great experience.
Other projects:
I'm not applying in any other projects.