restrict map_rect to legal data-only args

Abierto
#441 7 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
ocaml
Área
compilers

Línea de trabajo

Comienza con la validación de los argumentos de map_rect del compilador y reproduce el programa de Stan mostrado en el issue. Comprueba que una expresión indexada como xi[i] se rechaza por no ser completamente de solo datos y verifica que el programa no válido ya no se compila; el issue no especifica archivos ni pruebas concretos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug feature

The following program should not compile because xi[i] isn't an entirely data-only expression. The value xi is a data variable, but the index i is local. That allows illegal programs like this to get compiled:

functions {
  vector f(vector beta, vector theta, data real[] xr, data int[] xi ) {
    return [1.0]';
  }
}
transformed data {
  vector[2] beta;
  vector[2] theta[2];
  real xr[2, 2];
  int xi[2, 2, 2];
}
parameters {
  real y;
}
transformed parameters {
  real s = 0;
  for (i in 1:2) {
    // BAD!  DATA CHANGING BETWEEN CALLS
    s += sum(map_rect(f, beta, theta, xr, xi[i]));
  }
}

These will produce different results with MPI turned on and turned off, which we don't ever want to happen.

Lenguaje dominante
OCaml
Estrellas
162
Forks
60
Merge medio
2 d 22 h
PR fusionados (30 d)
14

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de stan-dev/stanc3

Todos los issues de stan-dev/stanc3

Issues similares

Más issues de Compilers

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.