Git 2.22.0 to be Released

74 developers made 745 changes to the new version of popular tool
10 June 2019   356

The release of the version control system Git 2.22.0 is presented. Git is one of the most popular, reliable and high-performance version control systems, providing flexible non-linear development tools based on branching and merging branches. 

Compared to the previous release, 745 changes were made to the new version, prepared with by of 74 developers, of which 18 took part in the development for the first time. Major innovations:

  • New transfer mode for the commit set "git rebase --rebase-merges" available since release 1.18 replaced with old option "--preserve-merges", which is now marked obsolete.
  • Support for creating a new branch based on the result of determining the merge base of two other branches (merge base, linking to a common ancestor) using the "git branch new A ... B" and "git checkout -b new A ... B" constructs, in which "A ... B" implies the definition of a merge base between two specified commits, similar to the way "git checkout A ... B" shifts HEAD to the base commit and "diff A ... B" shows the changes between with commit "B" and common with commit "A" ancestor has been added.
  • "git branch --show-current" added to display the name of the branch obtained during the checkout operation;

Get more info at Github and official Github's blog

Google to Propose to Develop Own Libc For LLVM

Development is caused by Google's unsatisfaction in the existing libc and it's planned to be phased, gradually increasing functionality
26 June 2019   26

One of the developers from Google raised on the LLVM mailing list the topic of developing a multi-platform standard C-library (Libc) within the framework of the LLVM project. For a number of reasons, Google is not satisfied with the current libc (glibc, musl) and the company is on its way to developing a new implementation, which is proposed to be developed as part of LLVM.

LLVM developments have recently been used as the basis for building Google's assembly tools. The main idea is that if Google has already begun to develop its libc, then why not immediately develop its system as part of LLVM, which already offers its standard library for C ++ (Libc ++), but does not have a similar standard library for C ( Libc).

Development is planned to be phased, gradually increasing functionality. The first options are proposed to be in the form of a layer between the application and the system libc, from which the unrealized features will be borrowed. After reaching a certain level of functionality, the new Libc can be used as a complete replacement for the system Libc. It is planned to start with the support of x86-64 architecture, Linux and static binding (dynamic loading, packaging, and additional architectures will be implemented in the second place).

The project is still at the initial stage of development, but the basic goals have already been defined:

  • Modularity and development in accordance with the philosophy of supplying a granular library, rather than a monolithic set;
  • Static binding support in modes with PIE (Position-independent executables) and without PIE. Providing CRT (C runtime) and PIE loader for statically linked executable files;
  • Support for most of the functions of the standard C library with POSIX add-ons and some system-specific extensions in demand in existing applications;
  • Careful attitude to vendor-specific extensions and adding them only when necessary. For support for third-party extensions, it is proposed to use the Clang and libc ++ projects approach;
  • Using exemplary practices in development using LLVM tools, such as applying sanitizer and fuzzing testing from the start.

Get more info at the email.