taichi-dev/taichi

[Lang] Deprecate ti.field(ti.f32), use ti.field(ti.f32, None) instead for advanced layouts

Open

#1.614 aberto em 30 de jul. de 2020

Ver no GitHub
 (9 comments) (0 reactions) (0 assignees)C++ (2.384 forks)batch import
discussionfeature requestgood first issuepythonwelcome contribution

Métricas do repositório

Stars
 (28.195 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Concisely describe the proposed feature I'd like to deprecate ti.field(ti.f32), use ti.field(ti.f32, shape=None) instead for advanced layout.

Why? Clarity matters:

  1. People who knows about advanced layouts definitely won't bother with adding a None.
  2. Beginners who just want to declare a dense field will be confused by Some variable(s) not placed and get busy seeking where a shape=xxx is missed. It would be great if we'd raise an argument 'shape' not specified error for them.

Describe the solution you'd like (if any) Since ti.field is a newly-added API, we are OK to tweak it as much as we want before v0.7.0 finally release, we'd only do this on ti.field, not ti.var, both ensuring backward-compatib and pushing refactoring forward. Simply change def field(dt, shape=None) -> def field(dt, shape) should be OK.

Additional comments @k-ye @yuanming-hu WDYT about this change?

Guia do colaborador