From e1d11cddbd2e0b377361e6dd72ae40198ee53484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Wed, 10 Aug 2016 13:54:22 +0200 Subject: [PATCH] random-state: add ext:random-state-array function This function will return random-state array. This is meant for next commit which implements MAKE-LOAD-FORM for random-state objects. --- src/c/num_rand.d | 6 ++++++ src/c/symbols_list.h | 2 ++ src/c/symbols_list2.h | 2 ++ src/h/external.h | 2 +- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/c/num_rand.d b/src/c/num_rand.d index 89c483bcd..66205ef65 100644 --- a/src/c/num_rand.d +++ b/src/c/num_rand.d @@ -338,3 +338,9 @@ cl_random_state_p(cl_object x) { @(return (ECL_RANDOM_STATE_P(x) ? ECL_T : ECL_NIL)); } + +cl_object +si_random_state_array(cl_object rs) { + ecl_check_cl_type(@'ext::random-state-array', rs, t_random); + return rs->random.value; +} diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index 04f0b26d4..de920ca80 100755 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -2207,6 +2207,8 @@ cl_symbols[] = { {EXT_ "HASH-TABLE-CONTENT", EXT_ORDINARY, si_hash_table_content, 1, OBJNULL}, {EXT_ "HASH-TABLE-FILL", EXT_ORDINARY, si_hash_table_fill, 2, OBJNULL}, +{EXT_ "RANDOM-STATE-ARRAY", EXT_ORDINARY, si_random_state_array, 1, OBJNULL}, + {SYS_ "REPORT-FUNCTION", SI_ORDINARY, NULL, -1, OBJNULL}, {SYS_ "DO-DEFSETF", SI_ORDINARY, ECL_NAME(si_do_defsetf), -1, OBJNULL}, diff --git a/src/c/symbols_list2.h b/src/c/symbols_list2.h index 8e125f1d3..8eeb8ef01 100644 --- a/src/c/symbols_list2.h +++ b/src/c/symbols_list2.h @@ -2207,6 +2207,8 @@ cl_symbols[] = { {EXT_ "HASH-TABLE-CONTENT","si_hash_table_content"}, {EXT_ "HASH-TABLE-FILL","si_hash_table_fill"}, +{EXT_ "RANDOM-STATE-ARRAY","si_random_state_array"}, + {SYS_ "REPORT-FUNCTION",NULL}, {SYS_ "DO-DEFSETF","ECL_NAME(si_do_defsetf)"}, diff --git a/src/h/external.h b/src/h/external.h index c4dbbf568..64aea9cdd 100755 --- a/src/h/external.h +++ b/src/h/external.h @@ -1237,7 +1237,7 @@ extern ECL_API cl_object cl_random_state_p(cl_object x); extern ECL_API cl_object cl_random _ECL_ARGS((cl_narg narg, cl_object x, ...)); extern ECL_API cl_object cl_make_random_state _ECL_ARGS((cl_narg narg, ...)); extern ECL_API cl_object ecl_make_random_state(cl_object rs); - +extern ECL_API cl_object si_random_state_array(cl_object rs); /* num_sfun.c */