New vendor branch for RISC-V: integration and experimental branch

Kito Cheng kito.cheng@gmail.com
Wed Jun 2 07:39:45 GMT 2021


Hi all:

I am Kito Cheng, one of the RISC-V port maintainers. I would like to
announce we have created two vendor branches for accepting unratified
extension support, in order to focus the development energy on FSF
repo.

RISC-V is an open standard instruction set architecture, many ISA
extensions are developing and are working in parallel by the RISC-V
community, many people are wanting a usable toolchain for those
unratified extensions for evaluation and/or experimental.

We try to maintain that on downstream repo which is based on github,
however it causes lots of maintenance issues, e.g. too many branches,
copyright issues, so we decide to move those developments to the FSF
after a long discussion with the RISC-V community.

# The policy for those vendor branches

Common policy for two branches:
- Based on trunk, will be rebased regularly.
- ChangeLog isn't a must, but nice to have.

Policy for integration branch:
- Accept released draft extension.

Policy for experimental branch:
- Accept working draft extension.
- If there is a released draft for the extension, please submit the
released draft extension one to the integration branch first if
possible.
- Might be rebased with the integration branch.

# What is the different between released draft extension and working
draft extension

Released draft means there is a formal release version, for example,
vector 0.10 and bitmanip 0.93 are released draft , there is tag for v
0.10 and b 0.93 and a corresponding released draft spec.

Other than that, we call that a working draft, like vector 1.0 and
bitmanip 0.94.

# How to fetch those branches
- Setup by contrib/git-fetch-vendor.sh script:
  You can use following command to enable fetching riscv branches:
 $ ./contrib/git-fetch-vendor.sh riscv

- Setup by git command:
$ git config --add remote.origin.fetch \
+refs/vendors/riscv/heads/*:refs/remotes/vendors/riscv/*
$ git config --add remote.origin.fetch \
+refs/vendors/riscv/tags/*:refs/tags/vendors/riscv/*

# Contribution
For contributors who are interested in sending patches to those
branches, you can send patches to gcc-patches@gcc.gnu.org as normal
patch submission flow, but with [riscv/integration] or
[riscv/experimental] tag in the title.

# What if we want a stable release for integration and experimental branch

We don't have that yet, but we intend to maintain two corresponding
branches for  integration and experimental with the latest GCC release
branch in future, e.g. integration-gcc-11 and experimental-gcc-11.


More information about the Gcc mailing list