Changeset 6f8c46d
- Timestamp:
- Jun 15, 2021, 11:34:45 AM (4 years ago)
- 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. - Files:
-
- 4 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
Jenkins/tools.groovy
rb6749fd r6f8c46d 83 83 84 84 return """ 85 <p>- Changes -------------------------------------------------------------</p> 86 85 87 <pre> 86 88 The branch ${env.BRANCH_NAME} has been updated. 87 89 ${gitUpdate} 88 90 </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>95 91 96 92 <p>- Log -----------------------------------------------------------------</p> -
Jenkinsfile
rb6749fd r6f8c46d 234 234 def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${currentBuild.result}] - branch ${env.BRANCH_NAME}" 235 235 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() 239 244 240 245 def email_to = !Settings.IsSandbox ? "cforall@lists.uwaterloo.ca" : "tdelisle@uwaterloo.ca" -
libcfa/src/Makefile.am
rb6749fd r6f8c46d 69 69 common.hfa \ 70 70 fstream.hfa \ 71 strstream.hfa \72 71 heap.hfa \ 73 72 iostream.hfa \ … … 78 77 rational.hfa \ 79 78 stdlib.hfa \ 79 strstream.hfa \ 80 80 time.hfa \ 81 81 bits/weakso_locks.hfa \ … … 83 83 containers/pair.hfa \ 84 84 containers/result.hfa \ 85 containers/vector.hfa 85 containers/vector.hfa \ 86 device/cpu.hfa 86 87 87 88 libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \ -
libcfa/src/concurrency/kernel.cfa
rb6749fd r6f8c46d 422 422 __cfactx_switch( &proc_cor->context, &thrd_dst->context ); 423 423 // when __cfactx_switch returns we are back in the processor coroutine 424 425 424 426 425 427 /* paranoid */ verify( 0x0D15EA5E0D15EA5Ep == thrd_dst->canary ); … … 522 524 523 525 /* 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 ); 526 528 } 527 529 -
libcfa/src/concurrency/locks.hfa
rb6749fd r6f8c46d 21 21 #include "bits/weakso_locks.hfa" 22 22 #include "containers/queueLockFree.hfa" 23 23 #include "limits.hfa" 24 24 #include "thread.hfa" 25 25 … … 85 85 bool tryP(BinaryBenaphore & this) { 86 86 ssize_t c = this.counter; 87 /* paranoid */ verify( c > MIN ); 87 88 return (c >= 1) && __atomic_compare_exchange_n(&this.counter, &c, c-1, false, __ATOMIC_SEQ_CST, __ATOMIC_RELAXED); 88 89 } … … 92 93 ssize_t c = 0; 93 94 for () { 95 /* paranoid */ verify( this.counter < MAX ); 94 96 if (__atomic_compare_exchange_n(&this.counter, &c, c+1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) { 95 97 if (c == 0) return true; -
libcfa/src/interpose.cfa
rb6749fd r6f8c46d 95 95 96 96 extern "C" { 97 void __cfaabi_interpose_startup(void) __attribute__(( constructor( STARTUP_PRIORITY_CORE ) ));98 97 void __cfaabi_interpose_startup( void ) { 99 98 const char *version = 0p; -
libcfa/src/startup.cfa
rb6749fd r6f8c46d 20 20 21 21 extern "C" { 22 23 22 void __cfaabi_appready_startup( void ) __attribute__(( constructor( STARTUP_PRIORITY_APPREADY ) )); 23 void __cfaabi_appready_startup( void ) { 24 24 tzset(); // initialize time global variables 25 25 setlocale( LC_NUMERIC, getenv("LANG") ); … … 28 28 heapAppStart(); 29 29 #endif // __CFA_DEBUG__ 30 30 } // __cfaabi_appready_startup 31 31 32 33 32 void __cfaabi_appready_shutdown( void ) __attribute__(( destructor( STARTUP_PRIORITY_APPREADY ) )); 33 void __cfaabi_appready_shutdown( void ) { 34 34 #ifdef __CFA_DEBUG__ 35 35 extern void heapAppStop(); 36 36 heapAppStop(); 37 37 #endif // __CFA_DEBUG__ 38 38 } // __cfaabi_appready_shutdown 39 39 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 42 58 } // extern "C" 43 59 -
tests/coroutine/fibonacci.cfa
rb6749fd r6f8c46d 31 31 } 32 32 33 int next( Fibonacci & fib ) with( fib ) {34 resume( fib ); // restart last suspend35 return fn;36 }37 38 33 int main() { 39 34 Fibonacci f1, f2; 40 35 for ( 10 ) { // print N Fibonacci values 41 sout | next( f1 ) | next( f2 );36 sout | resume( f1 ).fn | resume( f2 ).fn; 42 37 } // for 43 38 } -
tests/unified_locking/fast.cfa
rb6749fd r6f8c46d 22 22 uint32_t cs() { 23 23 $thread * me = active_thread(); 24 uint32_t value = (uint32_t)me;24 uint32_t value; 25 25 lock(mo.l); 26 26 { … … 28 28 mo.id = me; 29 29 yield(random(5)); 30 value = ((uint32_t)random()) ^ ((uint32_t)me); 30 31 if(mo.id != me) sout | "Intruder!"; 31 32 mo.sum = tsum + value;
Note: See TracChangeset
for help on using the changeset viewer.