summaryrefslogtreecommitdiffstats
path: root/tests/001
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-05-17 05:50:11 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-05-17 05:50:11 -0700
commit27514a0cde3a43f5c54c50a6899fb3a4666390ca (patch)
treec384b39596a851aa2330de70456d25e4b0f38fb2 /tests/001
parentabc64add6a46971c3ccf422b1daae01f82f98d25 (diff)
downloadtxr-27514a0cde3a43f5c54c50a6899fb3a4666390ca.tar.gz
txr-27514a0cde3a43f5c54c50a6899fb3a4666390ca.tar.bz2
txr-27514a0cde3a43f5c54c50a6899fb3a4666390ca.zip
ffi: carray type to round out semantics.
The carray type deals with C array passing conventions as a pointer to the first element of an array of unknown size. It fills in the functionality gap not covered by array and varray. * ffi.c (carray_s): New symbol variable. (ffi_carray_get, ffi_carray_put): New static functions. (ffi_type_compile): Handle (carray <type>) syntax. (struct carray): New struct type. (carray_struct, carray_struct_checked, carray_print_op, carray_mark_op, carray_destroy_op): New static functions. (carray_borrowed_ops, carray_owned_ops): New static structs. (make_carray, carray_set_length, carray_dup, carray_own, carray_free, carray_type, length_carray, carray_get, carray_vec, carray_blank, vec_carray, list_carray, carray_ref, carray_refset): New functions. (ffi_init): Initialize carray_s. Register carray-set_length, carray_dup, carray_own, carray-free, carray_type, length_carray, carray-vec, array_blank, vec_carray, list_carray, carray_ref and carray-refset intrinsics. * ffi.h (carray_s): Declared. (make_carray, carray_set_length, carray_dup, carray_own, carray_free, carray_type, length_carray, carray_get, carray_vec, carray_blank, vec_carray, list_carray, carray_ref, carray_refset): Declared.
Diffstat (limited to 'tests/001')
0 files changed, 0 insertions, 0 deletions