Datos expansivos de compilación
Índice
- 01. Modelo y llamada visible
- 02. Arrays y matrices
- 03.
chainybuffer - 04.
Signed_ty tamaños - 05. Propagación entre funciones
- 06.
uniqueyRegion_t - 07. ABI y backend
- 08. Diagnóstico y límites
Len_t, Size_t, Signed_t y Region_t aparecen en firmas, pero el usuario
no escribe sus argumentos en la llamada. Bagron los calcula y los añade al ABI.
func inspect(
data: int32[],
length: Len_t,
element_size: Size_t,
signed: Signed_t
) void:
return
func main() int32:
values: int32[3] = {1, 2, 3}
inspect(values)
return 0
La llamada visible inspect(values) recibe internamente 3, 4 y 0:
Len_t: elementos de la primera dimensión;Size_t: bytes de una unidad exterior (int32[2][3]produce2y12);Signed_t:0para signed y1para unsigned obyte.
Para cada array, Len_t y Size_t deben aparecer inmediatamente después del
parámetro y en ese orden. Signed_t, si existe, va detrás.
chain puede pedir Len_t e incluye el NUL; buffer[] también usa solo
Len_t, tomado del descriptor:
func inspect_buffer(data: buffer[], length: Len_t) usize:
return length
Region_t acompaña a un parámetro unique y representa la región exclusiva
demostrada por el compilador. No se escribe nunca en la llamada.