FOSDEM is the biggest free and non-commercial event organized by and for the community. Its goal is to provide Free and Open Source developers a place to meet. No registration necessary.

David Chisnall
Day Sunday
Room K.4.201
Capacity 85
Start time 11:00
End time 11:45
Duration 00:45
Track BSD Devroom
BSDC++.pdf (slides)

Towards a BSD C++11 Stack

FreeBSD 10 is expected to have a completely new C++ stack. The reasons for this are partly legal and partly technical. The existing stack is covered by version 2 of the GPL, but newer versions from upstream are GPLv3. The new C++11 standard means that shipping an old version of the GNU stack is no longer acceptable. This talk will cover the various parts that were required for replacing this stack, the challenges and missing pieces that needed implementing and the advantages of the new stack.

Most of the Free Software world currently uses the C++ stack provided by the GNU project, including the C++ front end to the GNU Compiler Collection and libstdc++, the GNU implementation of the C++ standard library. In 2007, these projects switched to version 3 of the GNU General Public License. As a result, newer versions have not been imported into FreeBSD and other projects with similar licensing conditions. GCC 4.2.1 and the associated libstdc++ release are the most recent that can be shipped with these platforms.

Since this release, a new version of the C++ standard, C++11, has been published. This includes a number of significant changes to both the language and the standard library. Some, such as r-value references, allow much more efficient implementation of some fundamental parts of the standard template library and make a significant reworking - if not a complete rewrite - desirable.

These two factors, the license and the need to support the new standard, made it desirable for FreeBSD to switch to a completely new C++ stack. This includes a variety of components. At the bottom sits the C++ runtime library, responsible for providing features such as exception handling and run-time type information. On top of this is the C++ standard library, which provides the classes that the standard mandates. None of this, of course, would be any use without a C++ compiler.

This talk will examine each of the components in the new, permissively licensed, C++11 stack, including libcxxrt, libc++, clang / LLVM, and the modifications that were required to FreeBSD to support all of these. Some of these libraries required writing from scratch, while others required effort to port or integrate. They all depend on various features that are not specific to C++, some of which already existed and some of which required implementing from scratch.

Concurrent events:

When Event Track Where
10:00-12:00 OpenSC codesprint Security H.2214
10:20-11:05 Using Cascalog and Hadoop for rapid graph processing and exploration Graph Processing AW1.125
10:30-11:10 Mobicents TelScale and RestComm Telephony and Communications H.2213
10:30-11:30 OBS Cross Build CrossDistribution H.1301
10:30-12:15 LPI Exam Session 3 Certification Guillissen
10:45-11:15 Boxes, use other systems with ease CrossDesktop H.1308
10:55-11:40 Data-Driven and Component-Based Game-Entities Open Source Game Development AW1.120
11:00-11:15 Powerful tools for Linux C/C++ developers based on Eclipse Lightning Talks Ferrer
11:00-11:25 Virtualization Management the oVirt way Virtualization and Cloud Chavanne
11:00-11:25 How to offload MySQL server with Sphinx MySQL and Friends H.1309
11:00-11:30 Xspice: Integrating spice-server into Xorg K.3.401
11:00-11:45 Practical implementation of promise theory in CFEngine Configuration and Systems Management K.3.601
11:00-11:45 Being a good upstream - the syslog-ng PoV CrossDistribution H.1302
11:00-11:50 Caching and Tuning fun for high scalability System Janson
11:00-11:50 Internet of Threads Network and IO K.1.105
11:00-12:00 Aseba robot programming Embedded Lameere
11:00-12:00 Amber, the Smalltalk for web developers Smalltalk AW1.126
11:00-17:00 LPI Item Writing Workshop Certification UA2.114
11:05-11:45 Perlito Perl AW1.121
11:10-11:55 Introduction to HelenOS Microkernel OS K.3.201
11:10-11:55 Birds of a feather - Graph processing, future trends! Graph Processing AW1.125
11:15-11:55 From zero to VoIP provider in 15 minutes Telephony and Communications H.2213
11:20-11:35 Amarok CrossDesktop H.1308
11:20-11:35 LibrePlan: Open Web Planning Lightning Talks Ferrer
11:30-11:55 oVirt Engine Core: Internals and Infrastructure Virtualization and Cloud Chavanne
11:30-11:55 Build simple and complex replication clusters with Tungsten Replicator MySQL and Friends H.1309
11:30-12:00 Can I legally do that? Free Java K.4.401
11:30-12:00 Introducing the Metrics Data Ping Mozilla UD2.218A
11:30-12:00 Wayland Q & A for toolkit developers. K.3.401
11:30-12:30 Working with contributor communities (round table) CrossDistribution H.1301
11:40-11:55 How we scaled up OpenQuake Lightning Talks Ferrer
11:40-12:30 and Qt 5 CrossDesktop H.1308

Next (up to 3) talks in the same room (K.4.201):

When Event Track
11:45-12:30 Integrating LLVM into FreeBSD BSD
13:15-13:45 The Lua Scripting Language in the NetBSD Kernel BSD
13:45-14:15 Touch your NetBSD BSD