Skip to content

Commit 246c078

Browse files
committed
begin implementing redesign of tuples and tuple types
[ci skip]
1 parent 7f7e9ae commit 246c078

File tree

4 files changed

+509
-480
lines changed

4 files changed

+509
-480
lines changed

src/alloc.c

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -333,102 +333,6 @@ DLLEXPORT jl_value_t *jl_new_struct_uninit(jl_datatype_t *type)
333333
return jv;
334334
}
335335

336-
DLLEXPORT jl_tuple_t *jl_tuple(size_t n, ...)
337-
{
338-
va_list args;
339-
if (n == 0) return jl_null;
340-
va_start(args, n);
341-
jl_tuple_t *jv = jl_alloc_tuple_uninit(n);
342-
for(size_t i=0; i < n; i++) {
343-
jl_tupleset(jv, i, va_arg(args, jl_value_t*));
344-
}
345-
va_end(args);
346-
return jv;
347-
}
348-
349-
DLLEXPORT jl_tuple_t *jl_tuplev(size_t n, jl_value_t **v)
350-
{
351-
jl_tuple_t *jv = jl_alloc_tuple_uninit(n);
352-
for(size_t i=0; i < n; i++) {
353-
jl_tupleset(jv, i, v[i]);
354-
}
355-
return jv;
356-
}
357-
358-
jl_tuple_t *jl_tuple1(void *a)
359-
{
360-
#ifdef OVERLAP_TUPLE_LEN
361-
jl_tuple_t *t = (jl_tuple_t*)alloc_2w();
362-
#else
363-
jl_tuple_t *t = (jl_tuple_t*)alloc_3w();
364-
#endif
365-
t->type = (jl_value_t*)jl_tuple_type;
366-
jl_tuple_set_len_unsafe(t, 1);
367-
jl_tupleset(t, 0, a);
368-
return t;
369-
}
370-
371-
jl_tuple_t *jl_tuple2(void *a, void *b)
372-
{
373-
#ifdef OVERLAP_TUPLE_LEN
374-
jl_tuple_t *t = (jl_tuple_t*)alloc_3w();
375-
#else
376-
jl_tuple_t *t = (jl_tuple_t*)alloc_4w();
377-
#endif
378-
t->type = (jl_value_t*)jl_tuple_type;
379-
jl_tuple_set_len_unsafe(t, 2);
380-
jl_tupleset(t, 0, a);
381-
jl_tupleset(t, 1, b);
382-
return t;
383-
}
384-
385-
jl_tuple_t *jl_alloc_tuple_uninit(size_t n)
386-
{
387-
if (n == 0) return jl_null;
388-
#ifdef OVERLAP_TUPLE_LEN
389-
jl_tuple_t *jv = (jl_tuple_t*)newobj((jl_value_t*)jl_tuple_type, n);
390-
#else
391-
jl_tuple_t *jv = (jl_tuple_t*)newobj((jl_value_t*)jl_tuple_type, n+1);
392-
#endif
393-
jl_tuple_set_len_unsafe(jv, n);
394-
return jv;
395-
}
396-
397-
jl_tuple_t *jl_alloc_tuple(size_t n)
398-
{
399-
if (n == 0) return jl_null;
400-
jl_tuple_t *jv = jl_alloc_tuple_uninit(n);
401-
for(size_t i=0; i < n; i++) {
402-
jl_tupleset(jv, i, NULL);
403-
}
404-
return jv;
405-
}
406-
407-
jl_tuple_t *jl_tuple_append(jl_tuple_t *a, jl_tuple_t *b)
408-
{
409-
jl_tuple_t *c = jl_alloc_tuple_uninit(jl_tuple_len(a) + jl_tuple_len(b));
410-
size_t i=0, j;
411-
for(j=0; j < jl_tuple_len(a); j++) {
412-
jl_tupleset(c, i, jl_tupleref(a,j));
413-
i++;
414-
}
415-
for(j=0; j < jl_tuple_len(b); j++) {
416-
jl_tupleset(c, i, jl_tupleref(b,j));
417-
i++;
418-
}
419-
return c;
420-
}
421-
422-
jl_tuple_t *jl_tuple_fill(size_t n, jl_value_t *v)
423-
{
424-
if (n==0) return jl_null;
425-
jl_tuple_t *tup = jl_alloc_tuple_uninit(n);
426-
for(size_t i=0; i < n; i++) {
427-
jl_tupleset(tup, i, v);
428-
}
429-
return tup;
430-
}
431-
432336
DLLEXPORT jl_function_t *jl_new_closure(jl_fptr_t fptr, jl_value_t *env,
433337
jl_lambda_info_t *linfo)
434338
{

0 commit comments

Comments
 (0)