Changeset 6f8c46d


Ignore:
Timestamp:
Jun 15, 2021, 11:34:45 AM (3 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
4f1b8f3f
Parents:
b6749fd (diff), 07033ce (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
4 added
9 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/tools.groovy

    rb6749fd r6f8c46d  
    8383
    8484        return """
     85<p>- Changes -------------------------------------------------------------</p>
     86
    8587<pre>
    8688The branch ${env.BRANCH_NAME} has been updated.
    8789${gitUpdate}
    8890</pre>
    89 
    90 <p>Check console output at ${env.BUILD_URL} to view the results.</p>
    91 
    92 <p>- Status --------------------------------------------------------------</p>
    93 
    94 <p>BUILD# ${env.BUILD_NUMBER} - ${currentBuild.result}</p>
    9591
    9692<p>- Log -----------------------------------------------------------------</p>
  • Jenkinsfile

    rb6749fd r6f8c46d  
    234234                def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${currentBuild.result}] - branch ${env.BRANCH_NAME}"
    235235                def email_body = """<p>This is an automated email from the Jenkins build machine. It was
    236         generated because of a git hooks/post-receive script following
    237         a ref change which was pushed to the C\u2200 repository.</p>
    238         """ + Tools.GitLogMessage()
     236                        generated because of a git hooks/post-receive script following
     237                        a ref change which was pushed to the C\u2200 repository.</p>
     238
     239                        <p>- Status --------------------------------------------------------------</p>
     240
     241                        <p>BUILD# ${env.BUILD_NUMBER} - ${currentBuild.result}</p>
     242                        <p>Check console output at ${env.BUILD_URL} to view the results.</p>
     243                        """ + Tools.GitLogMessage()
    239244
    240245                def email_to = !Settings.IsSandbox ? "cforall@lists.uwaterloo.ca" : "tdelisle@uwaterloo.ca"
  • libcfa/src/Makefile.am

    rb6749fd r6f8c46d  
    6969        common.hfa \
    7070        fstream.hfa \
    71         strstream.hfa \
    7271        heap.hfa \
    7372        iostream.hfa \
     
    7877        rational.hfa \
    7978        stdlib.hfa \
     79        strstream.hfa \
    8080        time.hfa \
    8181        bits/weakso_locks.hfa \
     
    8383        containers/pair.hfa \
    8484        containers/result.hfa \
    85         containers/vector.hfa
     85        containers/vector.hfa \
     86        device/cpu.hfa
    8687
    8788libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \
  • libcfa/src/concurrency/kernel.cfa

    rb6749fd r6f8c46d  
    422422                __cfactx_switch( &proc_cor->context, &thrd_dst->context );
    423423                // when __cfactx_switch returns we are back in the processor coroutine
     424
     425
    424426
    425427                /* paranoid */ verify( 0x0D15EA5E0D15EA5Ep == thrd_dst->canary );
     
    522524
    523525        /* paranoid */ verify( ! __preemption_enabled() );
    524         /* paranoid */ verifyf( ((uintptr_t)thrd_src->context.SP) < ((uintptr_t)__get_stack(thrd_src->curr_cor)->base ), "ERROR : Returning $thread %p has been corrupted.\n StackPointer too small.\n", thrd_src );
    525         /* paranoid */ verifyf( ((uintptr_t)thrd_src->context.SP) > ((uintptr_t)__get_stack(thrd_src->curr_cor)->limit), "ERROR : Returning $thread %p has been corrupted.\n StackPointer too large.\n", thrd_src );
     526        /* paranoid */ verifyf( ((uintptr_t)thrd_src->context.SP) < ((uintptr_t)__get_stack(thrd_src->curr_cor)->base ) || thrd_src->corctx_flag, "ERROR : Returning $thread %p has been corrupted.\n StackPointer too small.\n", thrd_src );
     527        /* paranoid */ verifyf( ((uintptr_t)thrd_src->context.SP) > ((uintptr_t)__get_stack(thrd_src->curr_cor)->limit) || thrd_src->corctx_flag, "ERROR : Returning $thread %p has been corrupted.\n StackPointer too large.\n", thrd_src );
    526528}
    527529
  • libcfa/src/concurrency/locks.hfa

    rb6749fd r6f8c46d  
    2121#include "bits/weakso_locks.hfa"
    2222#include "containers/queueLockFree.hfa"
    23 
     23#include "limits.hfa"
    2424#include "thread.hfa"
    2525
     
    8585        bool tryP(BinaryBenaphore & this) {
    8686                ssize_t c = this.counter;
     87                /* paranoid */ verify( c > MIN );
    8788                return (c >= 1) && __atomic_compare_exchange_n(&this.counter, &c, c-1, false, __ATOMIC_SEQ_CST, __ATOMIC_RELAXED);
    8889        }
     
    9293                ssize_t c = 0;
    9394                for () {
     95                        /* paranoid */ verify( this.counter < MAX );
    9496                        if (__atomic_compare_exchange_n(&this.counter, &c, c+1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
    9597                                if (c == 0) return true;
  • libcfa/src/interpose.cfa

    rb6749fd r6f8c46d  
    9595
    9696extern "C" {
    97         void __cfaabi_interpose_startup(void)  __attribute__(( constructor( STARTUP_PRIORITY_CORE ) ));
    9897        void __cfaabi_interpose_startup( void ) {
    9998                const char *version = 0p;
  • libcfa/src/startup.cfa

    rb6749fd r6f8c46d  
    2020
    2121extern "C" {
    22     void __cfaabi_appready_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_APPREADY ) ));
    23     void __cfaabi_appready_startup( void ) {
     22        void __cfaabi_appready_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_APPREADY ) ));
     23        void __cfaabi_appready_startup( void ) {
    2424                tzset();                                                                                // initialize time global variables
    2525                setlocale( LC_NUMERIC, getenv("LANG") );
     
    2828                heapAppStart();
    2929                #endif // __CFA_DEBUG__
    30     } // __cfaabi_appready_startup
     30        } // __cfaabi_appready_startup
    3131
    32     void __cfaabi_appready_shutdown( void ) __attribute__(( destructor( STARTUP_PRIORITY_APPREADY ) ));
    33     void __cfaabi_appready_shutdown( void ) {
     32        void __cfaabi_appready_shutdown( void ) __attribute__(( destructor( STARTUP_PRIORITY_APPREADY ) ));
     33        void __cfaabi_appready_shutdown( void ) {
    3434                #ifdef __CFA_DEBUG__
    3535                extern void heapAppStop();
    3636                heapAppStop();
    3737                #endif // __CFA_DEBUG__
    38     } // __cfaabi_appready_shutdown
     38        } // __cfaabi_appready_shutdown
    3939
    40     void disable_interrupts() __attribute__(( weak )) {}
    41     void enable_interrupts() __attribute__(( weak )) {}
     40        void disable_interrupts() __attribute__(( weak )) {}
     41        void enable_interrupts() __attribute__(( weak )) {}
     42
     43
     44        extern void __cfaabi_interpose_startup( void );
     45        extern void __cfaabi_device_startup   ( void );
     46        extern void __cfaabi_device_shutdown  ( void );
     47
     48        void __cfaabi_core_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_CORE ) ));
     49        void __cfaabi_core_startup( void ) {
     50                __cfaabi_interpose_startup();
     51                __cfaabi_device_startup();
     52        } // __cfaabi_core_startup
     53
     54        void __cfaabi_core_shutdown( void ) __attribute__(( destructor( STARTUP_PRIORITY_CORE ) ));
     55        void __cfaabi_core_shutdown( void ) {
     56                __cfaabi_device_shutdown();
     57        } // __cfaabi_core_shutdown
    4258} // extern "C"
    4359
  • tests/coroutine/fibonacci.cfa

    rb6749fd r6f8c46d  
    3131}
    3232
    33 int next( Fibonacci & fib ) with( fib ) {
    34         resume( fib );                                                                          // restart last suspend
    35         return fn;
    36 }
    37 
    3833int main() {
    3934        Fibonacci f1, f2;
    4035        for ( 10 ) {                                                                            // print N Fibonacci values
    41                 sout | next( f1 ) | next( f2 );
     36                sout | resume( f1 ).fn | resume( f2 ).fn;
    4237        } // for
    4338}
  • tests/unified_locking/fast.cfa

    rb6749fd r6f8c46d  
    2222uint32_t cs() {
    2323        $thread * me = active_thread();
    24         uint32_t value = (uint32_t)me;
     24        uint32_t value;
    2525        lock(mo.l);
    2626        {
     
    2828                mo.id = me;
    2929                yield(random(5));
     30                value = ((uint32_t)random()) ^ ((uint32_t)me);
    3031                if(mo.id != me) sout | "Intruder!";
    3132                mo.sum = tsum + value;
Note: See TracChangeset for help on using the changeset viewer.