Changes in / [0dc954b:e1e8408]


Ignore:
Location:
src
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • src/driver/cfa.cc

    r0dc954b re1e8408  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Oct 31 11:40:44 2017
    13 // Update Count     : 160
     12// Last Modified On : Tue Sep 26 23:12:38 2017
     13// Update Count     : 159
    1414//
    1515
     
    305305        } // if
    306306
    307         shuffle( args, sargs, nargs, 1 );                                       // make room at front of argument list
    308         nargs += 1;
    309307        if ( CFA_flag ) {
    310                 args[sargs] = "-D__CFA_FLAG__=-N";
    311308                args[nargs] = "-D__CFA_PREPROCESS_";
    312309                nargs += 1;
    313         } else {
    314                 args[sargs] = "-D__CFA_FLAG__=-L";
    315         } // if
    316         sargs += 1;
     310        } // if
    317311
    318312        if ( debug ) {
  • src/libcfa/stdlib

    r0dc954b re1e8408  
    1010// Created On       : Thu Jan 28 17:12:35 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Oct 31 13:47:24 2017
    13 // Update Count     : 245
     12// Last Modified On : Mon Oct 30 17:30:09 2017
     13// Update Count     : 242
    1414//
    1515
     
    213213//---------------------------------------
    214214
    215 void random_seed( long int s );
    216 char random( void );
    217 char random( char l, char u );
    218 int random( void );
    219 unsigned int random( void );
    220 unsigned int random( unsigned int u );
    221 unsigned int random( unsigned int l, unsigned int u );
    222 //long int random( void );
    223 unsigned long int random( void );
    224 unsigned long int random( unsigned long int u );
    225 unsigned long int random( unsigned long int l, unsigned long int u );
    226 float random( void );
    227 double random( void );
    228 float _Complex random( void );
    229 double _Complex random( void );
    230 long double _Complex random( void );
     215void rand48seed( long int s );
     216char rand48( void );
     217char rand48( char lower_bound, char upper_bound );
     218int rand48( void );
     219unsigned int rand48( void );
     220unsigned int rand48( unsigned int upper_bound );
     221unsigned int rand48( unsigned int lower_bound, unsigned int upper_bound );
     222long int rand48( void );
     223unsigned long int rand48( void );
     224unsigned long int rand48( unsigned long int upper_bound );
     225unsigned long int rand48( unsigned long int lower_bound, unsigned long int upper_bound );
     226float rand48( void );
     227double rand48( void );
     228float _Complex rand48( void );
     229double _Complex rand48( void );
     230long double _Complex rand48( void );
    231231
    232232//---------------------------------------
  • src/libcfa/stdlib.c

    r0dc954b re1e8408  
    1010// Created On       : Thu Jan 28 17:10:29 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct 30 22:43:02 2017
    13 // Update Count     : 297
     12// Last Modified On : Mon Oct 30 17:53:04 2017
     13// Update Count     : 295
    1414//
    1515
     
    275275//---------------------------------------
    276276
    277 void random_seed( long int s ) { srand48( s ); }
    278 char random( void ) { return mrand48(); }
    279 char random( char l, char u ) { return lrand48() % (u - l) + l; }
    280 int random( void ) { return mrand48(); }
    281 unsigned int random( void ) { return lrand48(); }
    282 unsigned int random( unsigned int u ) { return lrand48() % u; }
    283 unsigned int random( unsigned int l, unsigned int u ) { return lrand48() % (u - l) + l; }
    284 //long int random( void ) { return mrand48(); }
    285 unsigned long int random( void ) { return lrand48(); }
    286 unsigned long int random( unsigned long int u ) { return lrand48() % u; }
    287 unsigned long int random( unsigned long int l, unsigned long int u ) { return lrand48() % (u - l) + l; }
    288 float random( void ) { return (float)drand48(); }               // otherwise float uses lrand48
    289 double random( void ) { return drand48(); }
    290 float _Complex random( void ) { return (float)drand48() + (float _Complex)(drand48() * _Complex_I); }
    291 double _Complex random( void ) { return drand48() + (double _Complex)(drand48() * _Complex_I); }
    292 long double _Complex random( void) { return (long double)drand48() + (long double _Complex)(drand48() * _Complex_I); }
     277void rand48seed( long int s ) { srand48( s ); }
     278char rand48( void ) { return mrand48(); }
     279char rand48( char l, char u ) { return lrand48() % (u - l) + l; }
     280int rand48( void ) { return mrand48(); }
     281unsigned int rand48( void ) { return lrand48(); }
     282unsigned int rand48( unsigned int u ) { return lrand48() % u; }
     283unsigned int rand48( unsigned int l, unsigned int u ) { return lrand48() % (u - l) + l; }
     284long int rand48( void ) { return mrand48(); }
     285unsigned long int rand48( void ) { return lrand48(); }
     286unsigned long int rand48( unsigned long int u ) { return lrand48() % u; }
     287unsigned long int rand48( unsigned long int l, unsigned long int u ) { return lrand48() % (u - l) + l; }
     288float rand48( void ) { return (float)drand48(); }               // otherwise float uses lrand48
     289double rand48( void ) { return drand48(); }
     290float _Complex rand48( void ) { return (float)drand48() + (float _Complex)(drand48() * _Complex_I); }
     291double _Complex rand48( void ) { return drand48() + (double _Complex)(drand48() * _Complex_I); }
     292long double _Complex rand48( void) { return (long double)drand48() + (long double _Complex)(drand48() * _Complex_I); }
    293293
    294294//---------------------------------------
  • src/main.cc

    r0dc954b re1e8408  
    1010// Author           : Richard C. Bilson
    1111// Created On       : Fri May 15 23:12:02 2015
    12 // Last Modified By : Peter A. Buhr
    13 // Last Modified On : Tue Oct 31 12:22:40 2017
    14 // Update Count     : 445
     12// Last Modified By : Andrew Beach
     13// Last Modified On : Wed Jul 26 14:38:00 2017
     14// Update Count     : 443
    1515//
    1616
     
    8181        expraltp = false,
    8282        libcfap = false,
    83         preludep = false,
    8483        nopreludep = false,
    8584        noprotop = false,
     
    379378
    380379void parse_cmdline( int argc, char * argv[], const char *& filename ) {
    381         enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Preamble, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, TupleExpansion, Validate, };
     380        enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, TupleExpansion, Validate, };
    382381
    383382        static struct option long_opts[] = {
     
    391390                { "grammar", no_argument, 0, Grammar },
    392391                { "libcfa", no_argument, 0, LibCFA },
    393                 { "preamble", no_argument, 0, Preamble },
    394392                { "no-preamble", no_argument, 0, Nopreamble },
    395393                { "parse", no_argument, 0, Parse },
     
    407405
    408406        int c;
    409         while ( (c = getopt_long( argc, argv, "abBcCdefglLmnNpqrstTvyzZD:F:", long_opts, &long_index )) != -1 ) {
     407        while ( (c = getopt_long( argc, argv, "abBcCdefglLmnpqrstTvyzZD:F:", long_opts, &long_index )) != -1 ) {
    410408                switch ( c ) {
    411409                  case Ast:
     
    453451                  case 'n':                                                                             // do not read preamble
    454452                        nopreludep = true;
    455                         break;
    456                   case Preamble:
    457                   case 'N':                                                                             // read preamble
    458                         preludep = true;
    459453                        break;
    460454                  case Prototypes:
  • src/tests/boundedBuffer.c

    r0dc954b re1e8408  
    88// Created On       : Mon Oct 30 12:45:13 2017
    99// Last Modified By : Peter A. Buhr
    10 // Last Modified On : Mon Oct 30 23:02:46 2017
    11 // Update Count     : 9
     10// Last Modified On : Mon Oct 30 18:00:10 2017
     11// Update Count     : 7
    1212//
    1313
    1414#include <stdlib>
    15 #include <fstream>                                                                              // random
     15#include <fstream>
    1616#include <kernel>
    1717#include <thread>
    18 #include <unistd.h>                                                                             // getpid
     18#include <unistd.h>                                     // getpid
    1919
    2020monitor Buffer {
     
    5252void main( Producer & prod ) {
    5353        for ( int i = 1; i <= prod.N; i += 1 ) {
    54                 yield( random( 5 ) );
     54                yield( rand48( 5 ) );
    5555                insert( prod.buffer, 1 );
    5656        } // for
     
    6969        cons.sum = 0;
    7070        for ( ;; ) {
    71                 yield( random( 5 ) );
     71                yield( rand48( 5 ) );
    7272                int item = remove( cons.buffer );
    7373                if ( item == -1 ) break;                                // sentinel ?
     
    9090        processor p;
    9191
    92         //random_seed( getpid() );
    93         random_seed( 1003 );
     92        //rand48seed( getpid() );
     93        rand48seed( 1003 );
    9494
    9595        for ( i = 0; i < Cons; i += 1 ) {                       // create consumers
  • src/tests/datingService.c

    r0dc954b re1e8408  
    99// Created On       : Mon Oct 30 12:56:20 2017
    1010// Last Modified By : Peter A. Buhr
    11 // Last Modified On : Mon Oct 30 23:02:11 2017
    12 // Update Count     : 15
     11// Last Modified On : Mon Oct 30 17:58:41 2017
     12// Update Count     : 14
    1313//
    1414
    15 #include <stdlib>                                                                               // random
     15#include <stdlib>                                                                               // rand48
    1616#include <fstream>
    1717#include <kernel>
     
    6161
    6262void main( Girl & g ) {
    63         yield( random( 100 ) );                                                         // don't all start at the same time
     63        yield( rand48( 100 ) );                                                         // don't all start at the same time
    6464        unsigned int partner = girl( g.TheExchange, g.id, g.ccode );
    6565        //sout | "Girl:" | g.id | "is dating Boy at" | partner | "with ccode" | g.ccode | endl;
     
    7979
    8080void main( Boy & b ) {
    81         yield( random( 100 ) );                                                         // don't all start at the same time
     81        yield( rand48( 100 ) );                                                         // don't all start at the same time
    8282        unsigned int partner = boy( b.TheExchange, b.id, b.ccode );
    8383        //sout | " Boy:" | b.id | "is dating Girl" | partner | "with ccode" | b.ccode | endl;
     
    9696        Boy  *boys[NoOfPairs];
    9797
    98         random_seed( getpid() );
     98        rand48seed( getpid() );
    9999
    100100        for ( unsigned int i = 0; i < NoOfPairs; i += 1 ) {
  • src/tests/prodcons.c

    r0dc954b re1e8408  
    1010// Created On       : Mon Sep 18 12:23:39 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct 30 23:06:05 2017
    13 // Update Count     : 42
     12// Last Modified On : Mon Oct 30 18:01:19 2017
     13// Update Count     : 41
    1414//
    1515
    1616#include <fstream>
    1717#include <coroutine>
    18 #include <stdlib>                                                                               // random
     18#include <stdlib>                                                                               // rand48
    1919#include <unistd.h>                                                                             // getpid
    2020
     
    3030        // 1st resume starts here
    3131        for ( int i = 0; i < prod.N; i += 1 ) {
    32                 int p1 = random( 100 );
    33                 int p2 = random( 100 );
     32                int p1 = rand48( 100 );
     33                int p2 = rand48( 100 );
    3434                sout | p1 | " " | p2 | endl;
    3535                int status = delivery( *prod.c, p1, p2 );
     
    9090        Prod prod;
    9191        Cons cons = { prod };
    92         random_seed( /* getpid() */ 103 );                                      // fixed seed for testing
     92        rand48seed( /* getpid() */ 103 );                                       // fixed seed for testing
    9393        start( prod, 5, cons );
    9494        sout | "main stops" | endl;
  • src/tests/random.c

    r0dc954b re1e8408  
    1010// Created On       : Tue Jul  5 21:29:30 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct 30 23:06:49 2017
    13 // Update Count     : 6
     12// Last Modified On : Wed Jul  6 18:00:29 2016
     13// Update Count     : 3
    1414//
    1515
     
    1919
    2020int main() {
    21         //srandom( getpid() );                                                          // set random seed
    22         random_seed( 1003 );                                                            // fixed seed for repeatable tests
     21        //rand48seed( getpid() );                                                               // set random seed
     22        rand48seed( 1003 );                                                                     // fixed seed for repeatable tests
    2323
    2424        // test polymorphic calls to random and stream
    25         char c = random();
     25        char c = rand48();
    2626        sout | c | endl;
    27         int i = random();
     27        int i = rand48();
    2828    sout | i | endl;
    29         unsigned int ui = random();
     29        unsigned int ui = rand48();
    3030    sout | ui | endl;
    31         long int li = random();
     31        long int li = rand48();
    3232    sout | li | endl;
    33         unsigned long int uli = random();
     33        unsigned long int uli = rand48();
    3434    sout | uli | endl;
    35     float f = random();
     35    float f = rand48();
    3636    sout | f | endl;
    37     double d = random();
     37    double d = rand48();
    3838    sout | d | endl;
    39     float _Complex fc = random();
     39    float _Complex fc = rand48();
    4040    sout | fc | endl;
    41     double _Complex dc = random();
     41    double _Complex dc = rand48();
    4242    sout | dc | endl;
    43     long double _Complex ldc = random();
     43    long double _Complex ldc = rand48();
    4444    sout | ldc | endl;
    4545} // main
  • src/tests/rational.c

    r0dc954b re1e8408  
    1010// Created On       : Mon Mar 28 08:43:12 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Oct 10 23:25:04 2017
    13 // Update Count     : 67
     12// Last Modified On : Wed Aug 23 21:40:11 2017
     13// Update Count     : 66
    1414//
    1515
  • src/tests/sched-ext-barge.c

    r0dc954b re1e8408  
    4242void main( barger_t & this ) {
    4343        yield();
    44         while( barge( global ) ) { yield(random( 10 )); }
     44        while( barge( global ) ) { yield( rand48(10) ); }
    4545}
    4646
    4747bool do_call( global_t & mutex this ) {
    48         yield(random( 10 ));
     48        yield(rand48(10));
    4949        if( this.state != WAITFOR && !this.done && this.started ) {
    5050                serr | "Barging before caller detected" | endl;
     
    5757thread caller_t {};
    5858void main( caller_t & this ) {
    59         while( do_call(global) ) { yield(random( 10 )); }
     59        while( do_call(global) ) { yield(rand48(10)); }
    6060}
    6161
     
    6363        this.started = true;
    6464        for( int i = 0; i < N; i++) {
    65                 yield(random( 10 ));
     65                yield(rand48(10));
    6666                this.state = WAITFOR;
    6767                waitfor(do_call, this) {
  • src/tests/sched-ext-dtor.c

    r0dc954b re1e8408  
    4545
    4646void main( dummy_t & this ) {
    47         yield(random( 10 ));
     47        yield(rand48(10));
    4848        set_state( this, MAIN );
    4949        waitfor( ^?{}, this ) {
     
    5858        for( int i = 0; i < N; i++ ){
    5959                dummy_t dummy[4];
    60                 yield( random( 100 ) );
     60                yield( rand48(100) );
    6161        }
    6262        sout | "Stopping" | endl;
  • src/tests/sched-ext-recurse.c

    r0dc954b re1e8408  
    1515static const unsigned long N = 5_000ul;
    1616
    17 static inline void rand_yield() { yield(random( 10 )); }
     17static inline void rand_yield() { yield(rand48(10)); }
    1818
    1919enum state_t { FIRST, SECOND, THIRD, LAST, STOP };
     
    2323        for (i = 0; i < 4; i++)
    2424        {
    25                 int j = random( 4 );
     25                int j = rand48(4);
    2626                enum state_t t = array[j];
    2727                array[j] = array[i];
     
    131131
    132132int main() {
    133         random_seed( time(NULL) );
     133        rand48seed( time(NULL) );
    134134        sout | "Starting" | endl;
    135135        {
  • src/tests/sched-ext-when.c

    r0dc954b re1e8408  
    1515static const unsigned long N = 4_998ul;
    1616
    17 static inline void rand_yield() { yield(random( 10 )); }
     17static inline void rand_yield() { yield(rand48(10)); }
    1818
    1919monitor global_t {
     
    7777
    7878int main() {
    79         random_seed( time(NULL) );
     79        rand48seed( time(NULL) );
    8080        sout | "Starting" | endl;
    8181        {
  • src/tests/sched-ext.c

    r0dc954b re1e8408  
    3232void do_wait( global_t * mutex a ) {
    3333        sout | "Waiting to accept" | endl;
    34         yield( random( 10 ) );
     34        yield( rand48(10) );
    3535
    3636        sout | "Accepting" | endl;
     
    4444
    4545        sout | "Accepted" | endl;
    46         yield( random( 10 ) );
     46        yield( rand10() );
    4747}
    4848
     
    6464void main( Acceptee* this ) {
    6565        while( !done ) {
    66                 yield( random( 10 ) );
     66                yield( rand10() );
    6767                do_notify( &globalA );
    68                 yield( random( 10 ) );
     68                yield( rand10() );
    6969        }
    7070}
     
    7474int main(int argc, char* argv[]) {
    7575        done = false;
    76         random_seed( time( NULL ) );
     76        rand48seed( time( NULL ) );
    7777        printf("%p\n", &globalA);
    7878        sout | "Starting" | endl;
  • src/tests/sched-int-barge.c

    r0dc954b re1e8408  
    6464
    6565        if( action == 0 ) {
    66                 c.do_signal = max( random( 10 ), 1);
    67                 c.do_wait1 = random( c.do_signal );
    68                 c.do_wait2 = random( c.do_signal );
     66                c.do_signal = max( rand48(10), 1);
     67                c.do_wait1 = rand48(c.do_signal);
     68                c.do_wait2 = rand48(c.do_signal);
    6969
    7070                if(c.do_wait1 == c.do_wait2) sout | "Same" | endl;
     
    109109
    110110int main(int argc, char* argv[]) {
    111         random_seed(0);
     111        rand48seed(0);
    112112        processor p;
    113113        {
  • src/tests/sched-int-block.c

    r0dc954b re1e8408  
    4949        wait( &cond, (uintptr_t)this_thread );
    5050
    51         yield( random( 10 ) );
     51        yield( rand48(10) );
    5252
    5353        if(a.last_thread != a.last_signaller || b.last_thread != b.last_signaller ) {
     
    5858        a.last_thread = b.last_thread = this_thread;
    5959
    60         yield( random( 10 ) );
     60        yield( rand48(10) );
    6161}
    6262
     
    7070//------------------------------------------------------------------------------
    7171void signal_op( global_data_t & mutex a, global_data_t & mutex b ) {
    72         yield( random( 10 ) );
     72        yield( rand48(10) );
    7373
    7474        [a.last_thread, b.last_thread, a.last_signaller, b.last_signaller] = this_thread;
     
    8383                }
    8484
    85                 yield( random( 10 ) );
     85                yield( rand48(10) );
    8686
    8787                if(a.last_thread != next || b.last_thread != next) {
     
    118118
    119119int main(int argc, char* argv[]) {
    120         random_seed( time( NULL ) );
     120        rand48seed( time( NULL ) );
    121121        done = false;
    122122        processor p;
  • src/tests/sched-int-disjoint.c

    r0dc954b re1e8408  
    8888        signal( &cond, a, data );
    8989
    90         yield( random( 10 ) );
     90        yield( rand48(10) );
    9191
    9292        //This is technically a mutual exclusion violation but the mutex monitor protects us
     
    109109// Main loop
    110110int main(int argc, char* argv[]) {
    111         random_seed( time( NULL ) );
     111        rand48seed( time( NULL ) );
    112112        all_done = false;
    113113        processor p;
  • src/tests/sched-int-wait.c

    r0dc954b re1e8408  
    6262
    6363        while( waiter_left != 0 ) {
    64                 unsigned action = random( 4 );
     64                unsigned action = rand48(4);
    6565                switch( action ) {
    6666                        case 0:
     
    127127// Main
    128128int main(int argc, char* argv[]) {
    129         random_seed( time( NULL ) );
     129        rand48seed( time( NULL ) );
    130130        waiter_left = 4;
    131131        processor p[2];
Note: See TracChangeset for help on using the changeset viewer.