C++11 and LibreOffice Michael Stahl

Slides:



Advertisements
Similar presentations
Chapter 4 Constructors and Destructors. Objectives Constructors – introduction and features The zero-argument constructor Parameterized constructors Creating.
Advertisements

PC Operating Systems in Review lesson 12. UNIX DOS The Macintosh Operating System Windows 3.x OS/2 Warp Windows NT Windows 95 and 98 Linux Windows 2000.
Chapter 18 Vectors and Arrays
New Adventures in C++ with Cinder and More oct 2013 | nwcpp.org ale contenti | visual c++ dev mgr And a small pitch for VS 2013.
lld The LLVM Linker Friday, April 13, 2012
What's new in Microsoft Visual C
Using XCode © 2013 Surajit A Bose De Anza College.
AASPI Software Computational Environment Tim Kwiatkowski Welcome Consortium Members November 18, 2008.
Mobile Application Development
BY MUKTADIUR RAHMAN DATE: JUNE 10, 2010 Introduction to iPhone SDK.
1 ENERGY 211 / CME 211 Lecture 2 September 24, 2008.
Handybook: Swift Jayant Sani. Handybook Opinions “It’s like Ruby on Rails, for iOS!” – Nikita “A function should only do one thing and return.
PaperCut NG Chris Dance. Copyright © PaperCut Software Pty. Ltd. 2 Overview Overview of PaperCut NG Why we offer a Mac Version The story of our.
© 2010 IBM Corporation IBM Experience Modeler - Theme Editor Installing Python Image Library Presenter’s Name - Presenter’s Title DD Month Year.
3.0 MXIE features. December 2003 Page 2 Introduction MXIE in 3.0 has had a major work over. Most of this is fairly transparent to the user but the changes.
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
C# vs. C++ What's Different & What's New. An example C# public sometype myfn { get; set; } C++ public: sometype myfn { sometype get (); void set (sometype.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
Using the Clang Integrated Assembler to Compile the Linux Kernel Bryce Adelstein-Lelbach, Louisiana State University.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Bjarne Stroustrup began work on "C with Classes" in The idea of creating a new language originated from Stroustrup's experience in programming for.
Vs. Ease of Developing 3 rd Party Applications. Points of Interest Closed Source vs. Open Source – Does It Matter? Objective-C vs. Java – Implementation.
CSC 215 : Procedural Programming with C C Compilers.
C Program Toolchain #1 Dr. Michael L. Collard 1.
Geant4 Installation Supported platforms:  Scientific Linux with gcc 4.1.2/4.6  Mac Os X 10.7 and 10.8 with gcc 4.21  Windows7 with Visual Studio.
CS 11 java track: lecture 1 Administrivia need a CS cluster account cgi-bin/sysadmin/account_request.cgi need to know UNIX
1 CONFIDENTIAL.NET FEATURES OVERVIEW C# 6 ASP.NET 5 DNX PROJECT ASP.NET MVC 6 EF 7 A UGUST 4, 2015.
Introduction to C++ Shirley Moore
1 EPICS Bus Errors & Power PC u VME Bus Error can generate a Machine Check Exception (MCE) u The WRS mv2700 BSP doesn’t have code to do this u Write cycles.
Introduction to Computer Operating Systems
Institute of Informatics & Telecommunications – NCSR “Demokritos” TkDND: a cross-platform drag’n’drop package Georgios Petasis Software and Knowledge Engineering.
C++98 Initial Standard ~7 years C++03 Revised standard Limited to bug fixing ~ 5 years TR1 Pure library extension ~3 years C++11 Significant new features.
LLVM Compiler Katie Dew. Lectures High-level overview of LLVM (Katie) Walkthrough of LLVM in context of our project (Jason) –Input requirements –Configuration.
A presentation by Lewis Betterton.  What is an Operating System? Boot process Drivers Hardware and resource control Manages programs.
Automated Time Tracking From proposal to production By Chris Gaffney.
ITF11006.NET Generics. Generics - Sample Recent Generics - Characteristics Performance Type Safety Binary Code Reuse Code Bloat Naming Guidelines.
Herb Sutter Partner Program Manager C++: Conformance and Cross-platform Mobile Development.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
CNKI 知识网络发现平台. 我们有许多需求 …… 检索结果不满意 找不到产品入口 很多功能我没 有发现 非专业读者没有 专业使用技巧 我想可视化 查看图表 要在线 浏览! 求分享 ! CNKI 都有什么 要更专业的分析!
SimTK 1.0 Workshop Downloads Jack Middleton March 20, 2008.
Operating Systems Shannon Gibson. What is an Operating System?  An operating system is the most important software that runs on a computer.
Software development tools
QML and JavaScript for Native App Development Michael Tims Jen Trieu.
How to make use of 21st century C++ in LibreOffice development
Computer System Structures
Intro of UNITY (for beginner)
David Svoboda & Aaron Ballman
Java Interview Questions
Current Generation Hypervisor Type 1 Type 2.
PC Operating Systems in Review
The D Programming Language
Variadic templates Bjarne Stroustrup Nov 2010.
Tien-Hao Chang Department of Electrical Engineering National Cheng Kung University.
PVS-Studio static analyzer: advanced features
DTN Reference Implementation Update
BIND 10 Packaging & Distribution
What is an operating system?
Microsoft Connect /17/ :55 PM
1.1. .NET architectural components and .NET Core
Programming in C# CHAPTER 1
Mobile App Development
دانشگاه شهیدرجایی تهران
تعهدات مشتری در کنوانسیون بیع بین المللی
Intro of UNITY (for beginner)
1.
PC Operating Systems in Review
Q:(a)Describe the action for a kernel to context switching for threads (b)why it is faster than processes?
C++ Testing and Classes
Dyalog Version 15.0 Highlights
Presentation transcript:

C++11 and LibreOffice Michael Stahl 2015-01-31 The future has arrived (it was about time) Michael Stahl 2015-01-31

C++98 First ISO C++ standard Poorly implemented for many years It has too many features But it lacks features ISO/IEC 14882:1998 ISO/IEC 14882:2003

C++11 Major revision of ISO C++ standard “C++11 feels like a new language” (Stroustrup) Commercially available compilers actually implement it GCC Clang MSVC C++14 “bugfix release” ISO/IEC 14882:2011

… and LibreOffice? Rewrite in Haskell Rust didn't happen yet If we're stuck with C++, then at least give us modern C++

Inspiration from other projects... LLVM is switching to C++11 Minimum requirements: Clang 3.1 GCC 4.7 MSVC 2012 Offers a good subset of C++11, bringing both core and library improvements

LibreOffice 4.3, C++98 Platform Min requirement TDF release Min OS target Windows MSVC 2010 MSVC 2012 Windows XP Linux GCC 4.1 Clang 2.? GCC 4.4 RHEL 5 Mac OS X Mac OS X SDK 10.6 Apple GCC 4.2 XCode 3.2 (Mac OS X SDK 10.6) Mac OS X 10.6 32bit (libstdc++)

LibreOffice 4.4 requires (some) C++11 Platform Min requirement TDF release Min OS target Windows MSVC 2012 Windows XP Linux GCC 4.7 4.6 Clang 3.1 GCC 4.8 (DTS, no bundling libstdc++) RHEL 5 Mac OS X Mac OS X SDK 10.8 Apple Clang 6.0 (Mac OS X SDK 10.8) Mac OS X 10.8 64bit (libc++) Mac OS X 10.7 would have been sufficient for C++11, but...

LibreOffice 4.5 will require even more C++11 Platform Min requirement TDF release Min OS target Windows MSVC 2013 Windows XP Linux GCC 4.7 4.6 Clang 3.1 GCC 4.8 (DTS, no bundling libstdc++) RHEL 5 ? Mac OS X Mac OS X SDK 10.8 Apple Clang 6.0 (Mac OS X SDK 10.8) Mac OS X 10.8 64bit (libc++)

dropping MSVC 2012 for 2013: new features Variadic templates Initializer lists Default template arguments for function templates Explicit conversion operators Raw string literals Defaulted and deleted functions http://msdn.microsoft.com/en-us/library/hh567368.aspx http://msdn.microsoft.com/en-us/library/hh567368.aspx

…and dropping GCC 4.6 for 4.7 would allow... Non-static data member initializers Alias templates Delegating constructors https://gcc.gnu.org/projects/cxx0x.html (For completeness, clang's status) http://clang.llvm.org/cxx_status.html https://gcc.gnu.org/projects/cxx0x.html http://clang.llvm.org/cxx_status.html

Fin. Thanks for your attention