[gnumeric] Random: mark random number functions volatile.



commit 7e6d0d6b45a2f843bb6b16c0196da1fa12c786bf
Author: Morten Welinder <terra gnome org>
Date:   Mon Mar 3 15:33:40 2014 -0500

    Random: mark random number functions volatile.
    
    This doesn't actually do anything yet.

 plugins/fn-random/ChangeLog   |    4 ++
 plugins/fn-random/functions.c |   99 +++++++++++++++++++++++++++--------------
 2 files changed, 70 insertions(+), 33 deletions(-)
---
diff --git a/plugins/fn-random/ChangeLog b/plugins/fn-random/ChangeLog
index bef07b9..9eac0ef 100644
--- a/plugins/fn-random/ChangeLog
+++ b/plugins/fn-random/ChangeLog
@@ -1,3 +1,7 @@
+2014-03-03  Morten Welinder  <terra gnome org>
+
+       * functions.c (random_functions): Mark random functions volatile.
+
 2014-02-16  Morten Welinder <terra gnome org>
 
        * Release 1.12.11
diff --git a/plugins/fn-random/functions.c b/plugins/fn-random/functions.c
index 2d28c8e..a9d3272 100644
--- a/plugins/fn-random/functions.c
+++ b/plugins/fn-random/functions.c
@@ -965,103 +965,136 @@ gnumeric_randstdist (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 GnmFuncDescriptor const random_functions[] = {
        { "rand",    "", help_rand,
          gnumeric_rand, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "randbernoulli", "f",    help_randbernoulli,
          gnumeric_randbernoulli, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randbeta", "ff",    help_randbeta,
          gnumeric_randbeta, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randbetween", "ff",  help_randbetween,
          gnumeric_randbetween, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_COMPLETE, GNM_FUNC_TEST_STATUS_BASIC },
         { "randbinom", "ff",  help_randbinom,
          gnumeric_randbinom, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randcauchy", "f",    help_randcauchy,
          gnumeric_randcauchy, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randchisq", "f",    help_randchisq,
          gnumeric_randchisq, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
        { "randdiscrete", "r|r",
          help_randdiscrete, gnumeric_randdiscrete, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
        { "randexp", "f",          help_randexp,
          gnumeric_randexp, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randexppow", "ff",          help_randexppow,
          gnumeric_randexppow, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randfdist", "ff",       help_randfdist,
          gnumeric_randfdist, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randgamma", "ff",     help_randgamma,
          gnumeric_randgamma, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randnormtail", "ff",     help_randnormtail,
          gnumeric_randnormtail, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randgeom", "f",     help_randgeom,
          gnumeric_randgeom, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randgumbel", "ff|f",     help_randgumbel,
          gnumeric_randgumbel, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randhyperg", "fff",     help_randhyperg,
          gnumeric_randhyperg, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlandau", "", help_randlandau,
          gnumeric_randlandau, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlaplace", "f",  help_randlaplace,
          gnumeric_randlaplace, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlevy", "ff|f",  help_randlevy,
          gnumeric_randlevy, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlog", "f",  help_randlog,
          gnumeric_randlog, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlogistic", "f",  help_randlogistic,
          gnumeric_randlogistic, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randlognorm", "ff",  help_randlognorm,
          gnumeric_randlognorm, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randnegbinom", "ff",  help_randnegbinom,
          gnumeric_randnegbinom, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randnorm", "ff",  help_randnorm,
          gnumeric_randnorm, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randpareto", "ff",  help_randpareto,
          gnumeric_randpareto, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randpoisson", "f",  help_randpoisson,
          gnumeric_randpoisson, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randrayleigh", "f",  help_randrayleigh,
          gnumeric_randrayleigh, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randrayleightail", "ff",  help_randrayleightail,
          gnumeric_randrayleightail, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randsnorm", "|fff",  help_randsnorm,
          gnumeric_randsnorm, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randstdist", "ff",  help_randstdist,
          gnumeric_randstdist, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randtdist", "f",  help_randtdist,
          gnumeric_randtdist, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randuniform", "ff",  help_randuniform,
          gnumeric_randuniform, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
         { "randweibull", "ff",  help_randweibull,
          gnumeric_randweibull, NULL, NULL, NULL,
-         GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
+         GNM_FUNC_SIMPLE | GNM_FUNC_VOLATILE,
+         GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },
        { "simtable", NULL,  help_simtable,
          NULL, gnumeric_simtable, NULL, NULL,
          GNM_FUNC_SIMPLE, GNM_FUNC_IMPL_STATUS_UNIQUE_TO_GNUMERIC, GNM_FUNC_TEST_STATUS_NO_TESTSUITE },


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]