jl_tuple_t *jl_tuple1(void *a) { #ifdef OVERLAP_TUPLE_LEN jl_tuple_t *t = (jl_tuple_t*)alloc_2w(); #else jl_tuple_t *t = (jl_tuple_t*)alloc_3w(); #endif t->type = (jl_value_t*)jl_tuple_type; jl_tuple_set_len_unsafe(t, 1); jl_tupleset(t, 0, a); return t; }
jl_expr_t *jl_exprn(jl_sym_t *head, size_t n) { jl_array_t *ar = n==0 ? (jl_array_t*)jl_an_empty_cell : jl_alloc_cell_1d(n); JL_GC_PUSH1(&ar); jl_expr_t *ex = (jl_expr_t*)alloc_3w(); assert(NWORDS(sizeof(jl_expr_t))==3); jl_set_typeof(ex, jl_expr_type); ex->head = head; ex->args = ar; ex->etype = (jl_value_t*)jl_any_type; JL_GC_POP(); return ex; }