Schedule

Day 1: Wednesday May 1, 2013
8:30 AM - 9:00 AMBreakfast
9:00 AM Opening Keynote
Walter Bright It hardly gets better than listening to D's creator himself! Meet Walter Bright, the one and only, and listen to him talk about the present and future of the D programming language.
Slides
Video: [HD] [SD]
10:00 AM Copy and Move Semantics in D
Ali Çehreli D structs are similar to their counterparts in other languages but they have significant differences as well. The mechanics of copying and moving struct objects are special in D.
Slides
Video: [HD] [SD]
11:00 AM Distributed Caching Compiler for D
Robert Schadek

Nearly thirty years have passed since the release of the infamous Dragon Book by Aho, Lam, Sethi, and Ullman. Since then the available memory and CPU power has grown by a factor of at least 1000 and 10000 respectively. The use of multiprocessors and fast networks has become the rule rather than the exception. Even though compiler and programming language have advanced greatly in this period of time, their basic design has not been adjusted to reflect the enormous hardware improvements.

In this presentation, which reflects the content of my master thesis, I present a D compiler written in D that exploits these tremendous hardware advances. To utilize multiprocessors the lexer and parser are run in different communicating threads. On top of that different semantic analysis are spread across multiple threads. To speedup compilation, by use of a cache and work distribution among a network, datastructures are created that store results, like the abstract-syntax- tree, in a consecutive chunk of memory. To remove manual labor a lexer- and parser-generator were created that use a custom library that, not only, consists of stl inspired containers.

Besides the conceptual architecture of this new compiler, I will report on the implementation, the use of datastructures and the lessons learned during this project with respect to compiler design as well as the D Programming Language.

Slides
Video: [HD] [SD]
12:00 PM - 1:30 PMLunch & Mingling
1:30 PM Writing Testable Code in D
Ben Gertzfield

Modern large-scale software design often requires ever-growing team sizes. As team size scales up, so does the amount of churn (and number of bugs introduced) to a code base in a release. Unfortunately, the amount of manual developer or QA testing necessary to find those bugs scales quadratically (or worse) as N features are tested by hand in M configurations. The solution is to keep coders, not QA, responsible for maintaining the quality of their individual components, and to make it trivial and fast to run just the right tests that cover the code the coder changes. D comes pre-baked with lots of tools to make this easier, including a standard unit testing harness, but there'smuch more we can build on top of that to help write not only tests for code, but code that can be tested in an automated fashion.

We'll discuss techniques and tools for designing large-scale testable code in D, including unit testing, mocks, fakes, inversion of control, and dependency injection.

Slides
Video: [HD] [SD]
2:30 PM Using D Alongside a Game Engine
Manu Evans Post-mortem on experiments integrating D with a typical C/C++ game engine as an extension language for use processing game logic. Topics covered include dynamic C/C++ linkage, memory management, patterns for usage as an extension of existing C/C++ code, issues encountered, and other hairy details.
Slides
Video: [HD] [SD]
3:30 PM Concurrent Garbage Collection for D
Leandro Lucarella Stop-the-world garbage collectors can be quite problematic for (soft) real-time applications. The pauses introduced can be disruptive to the point to make some applications inviable, like games or even low-latency servers.

The Concurrent D Garbage Collector (CDGC) was developed mainly to address this issue, by making the mark phase run in parallel with the actual application, reducing the pause times by 2 orders of magnitude. Since our systems at sociomantic labs GmbH require to have very low latency at all times, we've been using this collector for almost 2 years now with good results.

This presentation gives a brief introduction to garbage collection, describes original D's GC implementation details and explains how it has been extended to do perform the mark phase in parallel. After showing some benchmark results, shortcomings and future work and improvements are discussed.

Slides
Video: [HD] [SD]
4:30 PM The D Development Process
Walter Bright, Andrei Alexandrescu, and more Join us for a lively discussion that's likely to go late into the night over beers. The topic is D's development process—what are we doing well, what should we improve, and what are the next steps to take?
Video: [HD] [SD]
Day 2: Thursday May 2, 2013
8:30 AM - 9:00 AMBreakfast
9:00 AM GDC
Iain Buclaw Starting with an introduction to GDC, what works (and doesn't) and updates on current progress of development. Will go on to talk about future developments, scope and design. In particularly focusing on the expansion of D, including targeting more architectures, future shared library support in the runtime, the implementation of D Front-End itself to scale and be platform agnostic, and finally getting across the chasm to gain a bigger user base (Andrei said "I want 1,000,000 users" back in 2012). Rounding it up with (an interogation :o) Q&A.
Slides
Video: [HD] [SD]
10:00 AM Shared libraries in D
Martin Nowak

Where are we?
I'll give a short overview of the current state of affairs.

Where are we heading?
I'll take about what I envision to be a good shared library support.

Caveats?
I'd like to briefly restate shared library pitfalls.

And finally we want to discuss what you'd expect from a good shared library support.

Slides
Video: [HD] [SD]
11:00 AM C# to D
Adam Wilson Breaking up is never easy and taking the plunge opens a Pandora’s Box of difficult questions. This talk will answer some of those questions and provide direction for anyone looking to convert their C# software to D. We will focus on the practical issues that anyone converting their project from C# to D will face. These issues include, but are not limited to, the differences between C# Namespaces and D Modules, Strings, Scoping, Properties, and what to expect while converting from the .NET Base Class Library to Phobos. This talk will be code-centric featuring real-world examples and how-to’s.
Slides
Video: [HD] [SD]
12:00 PM - 1:30 PMLunch & Mingling
1:30 PM Web Development in D
Vladimir Panteleev With its speed, safety, and expressiveness, D excels for web development. However, D is not yet thought of as a compelling choice in that area. The best D tools and techniques for web development are young and not well known at this time. This talk will fix that by providing an overview of the web development libraries, solutions and techniques available to D users today.
Slides
Video: [HD] [SD]
2:30 PM A Precise Garbage Collector for D
Rainer Schütze

Though optional to some extent, garbage collection simplifies programming considerably and is a major building block for a number of features of the D programming language like slices and delegate closures. The current garbage collector implemented in the D runtime library is conservative, limiting the possibility to detect false pointer references leading to unused memory leaking and polluting the address space, especially in 32-bit environments.

This presentation describes the implementation of a precise garbage collector for D that takes advantage of building necessary type information at compile time via the existing RTInfo compiler hook. Modifications to the D runtime library are discussed and compiler modifications are proposed to support precise scanning the data and TLS segments in addition to heap allocated memory.

Slides
Video: [HD] [SD]
3:30 PM Higgs, an Experimental JIT Compiler written in D
Maxime Chevalier-Boisvert Just-in-time (JIT) compilers are highly complex pieces of software which manipulate symbolic representations of code at multiple levels of abstraction, generate machine instructions, and introspect the state of programs at execution time. We present an experience report on the usage of D in implementing Higgs, an optimizing JIT compiler for JavaScript. We discuss how various features of D did or did not address our technical and practical concerns and provide some recommendations for future development of the language.
Slides
Video: [HD] [SD]
4:30 PM Falling Down: the birth of Åkerön
Andrew Edwards A presentation about the the birth of Åkerön.
Day 3: Friday May 3, 2013
8:30 AM - 9:00 AMBreakfast
9:00 AM Metaprogramming in the Real World
Don Clugston

Sociomantic Labs is a global leader in real-time bidding for online display advertising. Our codebase is not only written entirely in D, but also makes extensive use of generic programming, even in application-level code. Compile-time metaprogramming techniques have a reputation of being akin to sorcery, incomprehensible to all but an elite group of top-notch library developers. Yet we have found that even developers with no prior knowledge of D have been able to master the compile-time aspects of the language in a remarkably short period of time.

This presentation will review the history of this part of the language, to explain exactly how and why generic programming D has become so accessible in practice. Drawing from Sociomantic's experience with D, I'll discuss the areas where reality differs from expectations. Accessible metaprogramming has huge implications for the future commercial growth of D, and our real-world experience will help the D community to further exploit this strength.

Slides
Video: [HD] [SD]
10:00 AM Code Analysis for D with AnalyzeD
Stefan Rohe

Professional Programming in teams requires a common clean coding style. This could be enforced using code reviews, but the simpler and less offensive way to achieve this is by using a tool as style cop. It helps spreading the conventions about the language in the team and assisting new team members in easily adopt to the programming style by getting fast feedback on their code. Having such a static code analyzer refactoring becomes easier, because it reminds about now unused variables, unused parameters or other refactoring artefacts.

This talk will introduce you to AnalyzeD, explain you how it's working, and give you an outline about what's planned.

AnalyzeD is currently used for checking 250kLOC of production code against programming conventions and determines metrics.ent state and what is planned to develop/release.

Slides
Video: [HD] [SD]
11:00 AM D-Specific Design Patterns
David Simcha The D programming language offers a variety of abstractions not found together in any other language. In particular, D's compile time metaprogramming facilities are a game changer, especially when combined with its low-level programming capabilities. This session explores design patterns that have emerged from my code, my former GSoC students' code and code written by other Phobos contributors. It attempts to codify some of the more useful patterns that are currently known only informally and only to a small group of hardcore D users.
Video: [HD] [SD]
12:00 PM - 1:30 PMLunch & Mingling
1:30 PM LDC
David Nadlinger LDC is a fully open source, portable D compiler based on the same front-end as DMD, but leveraging the LLVM compiler infrastructure for optimization and code generation. Development activity has resurged recently, and this talk will start out with an overview of the current status, focussing on spec compliance, performance and platform support. In the second half, after a cursory look at the internal workings of the compiler, the talk will recap the current situation from a developer point of view, including our experiences regarding the use of DMD in an external project. Finally, future plans and open issues will be discussed, with a specific emphasis on cross-compiler compatibility.
Slides
Video: [HD] [SD]
2:30 PM Effective SIMD for modern architectures
Manu Evans Efficient and portable implementation of SIMD algorithms in D using core.simd and std.simd.
Slides
Video: [HD] [SD]
3:30 PM Quo Vadis?
Andrei Alexandrescu In this closing note, Andrei discusses hot topics in D's development and the language's present and future.
Slides
Video: [HD] [SD]
 

© 2013 http://digitalmars.com | Generated with Ddoc