---
# System prepended metadata

title: Issue Cleanup and Removing Legacy Backends
tags: [cycle 7, gt4py]

---

# Issue Cleanup and Removing Legacy Backends

###### tags: `cycle 7` `gt4py`
shaped by: Johann

## Problem

With the legacy toolchain and GTC, gt4py now has the following backends:
- debug
- numpy
- gtx86
- gtmc
- gtcuda
- gtc:numpy
- gtc:gt:cpu_kfirst
- gtc:gt:cpu_kfirst
- gtc:gt:gpu
- gtc:cuda
The set of backends that are not preceeded by `gtc:` use the deprecated legacy toolchain and are no longer supported. There are still tests that ensure these are not broken, but the development effort in maintaining both is unnecessary.

In addition, gt4py has had a `Christmas Cleanup` that needs finishing, and a few new critical bugs fixed.

## Appetite

1 develop.

## Solution

### Finish responding to issues on the [christmas cleanup milestone](https://github.com/GridTools/gt4py/milestone/4)

There are only a few left.

The typing issue is not easy to fix, and needs re-design with at least one development meeting to discuss with the team.

### Continue tackling items in [#566 removing legacy backends](https://github.com/GridTools/gt4py/issues/566)

This is the top-level issue for removing the legacy backends.

Quite a bit of code can be removed, but one caveat that makes this difficult is that the gtscript frontend still writes to `defir` which uses the legacy toolchain IR node types.

We would like to keep enough tests that this functionality is maintained until we can modify gtscript to write directly to `gtir`.

The first step of this is already finished, just awaiting review from CSCS.

### Resolve [#594 making dace an optional dependency](https://github.com/GridTools/gt4py/issues/594)

We have discussed all together and decided that all the backends that rely on external packages other than numpy should be optional dependencies. If the package is not present, the backends can simply not be used.

This will make gt4py much lighter weight, which is especially important for our collaborators at NOAA.

### Resolve [#621 gtc:numpy backend fails on TestNon3DFields](https://github.com/GridTools/gt4py/issues/621)

This was an issue recently uncovered when removing the legacy backends. Presumably there are still some issues with non-3d and data dimensions in the `gtc:numpy` backend. These will have to get fixed to get functional feature parity with the legacy backends before they can be removed.

### Resolve [#565 class vars cannot include type params](https://github.com/GridTools/gt4py/issues/565)

Not sure if this should be included this cycle, but it uncovers some interesting design issues with eve that should be addressed, especially since eve is being used by the gt4py v2 project as well.

## Potential Rabbit Holes

Eve design.

## No Gos

GTScript typing.