Changeset 298581c
- Timestamp:
- May 9, 2017, 1:56:38 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 6182039
- Parents:
- c10ee66 (diff), f408e1a (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:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Jenkins/FullBuild
rc10ee66 r298581c 9 9 10 10 try { 11 // Prevent the build from exceeding 30 minutes12 timeout(60) {11 //Wrap build to add timestamp to command line 12 wrap([$class: 'TimestamperBuildWrapper']) { 13 13 14 //Wrap build to add timestamp to command line 15 wrap([$class: 'TimestamperBuildWrapper']) { 14 stage('Build') { 16 15 17 stage 'Build'16 results = [null, null] 18 17 19 results = [null, null] 18 parallel ( 19 gcc_6_x64: { trigger_build( 'gcc-6', 'x64', true ) }, 20 gcc_6_x86: { trigger_build( 'gcc-6', 'x86', true ) }, 21 gcc_5_x64: { trigger_build( 'gcc-5', 'x64', false ) }, 22 gcc_5_x86: { trigger_build( 'gcc-5', 'x86', false ) }, 23 gcc_4_x64: { trigger_build( 'gcc-4.9', 'x64', false ) }, 24 gcc_4_x86: { trigger_build( 'gcc-4.9', 'x86', false ) }, 25 clang_x64: { trigger_build( 'clang', 'x64', false ) }, 26 clang_x86: { trigger_build( 'clang', 'x86', false ) }, 27 ) 28 } 20 29 21 parallel ( 22 gcc_6_x64: { trigger_build( 'gcc-6', 'x64', true ) }, 23 gcc_6_x86: { trigger_build( 'gcc-6', 'x86', true ) }, 24 gcc_5_x64: { trigger_build( 'gcc-5', 'x64', false ) }, 25 gcc_5_x86: { trigger_build( 'gcc-5', 'x86', false ) }, 26 gcc_4_x64: { trigger_build( 'gcc-4.9', 'x64', false ) }, 27 gcc_4_x86: { trigger_build( 'gcc-4.9', 'x86', false ) }, 28 clang_x64: { trigger_build( 'clang', 'x64', false ) }, 29 clang_x86: { trigger_build( 'clang', 'x86', false ) }, 30 ) 31 32 //Push latest changes to do-lang repo 33 push_build() 34 } 30 //Push latest changes to do-lang repo 31 push_build() 35 32 } 36 33 } … … 99 96 def push_build() { 100 97 //Don't use the build_stage function which outputs the compiler 101 stage 'Push'98 stage('Push') { 102 99 103 100 status_prefix = 'Push' … … 122 119 //sh "GIT_SSH_COMMAND=\"ssh -v\" git push DoLang ${gitRefNewValue}:master" 123 120 echo('BUILD NOT PUSH SINCE DO-LANG SERVER WAS DOWN') 121 } 124 122 } 125 123 -
Jenkinsfile
rc10ee66 r298581c 28 28 wrap([$class: 'TimestamperBuildWrapper']) { 29 29 30 //Prevent the build from exceeding 60 minutes 31 timeout(60) { 32 33 notify_server() 34 35 prepare_build() 36 37 checkout() 38 39 build() 40 41 test() 42 43 benchmark() 44 45 clean() 46 47 build_doc() 48 49 publish() 50 51 notify_server() 52 } 30 notify_server() 31 32 prepare_build() 33 34 checkout() 35 36 build() 37 38 test() 39 40 benchmark() 41 42 clean() 43 44 build_doc() 45 46 publish() 47 48 notify_server() 53 49 } 54 50 } … … 89 85 def collect_git_info() { 90 86 87 checkout scm 88 91 89 //create the temporary output directory in case it doesn't already exist 92 90 def out_dir = pwd tmp: true … … 95 93 //parse git logs to find what changed 96 94 gitRefName = env.BRANCH_NAME 97 dir("../${gitRefName}@script") { 98 sh "git reflog > ${out_dir}/GIT_COMMIT" 99 } 95 sh "git reflog > ${out_dir}/GIT_COMMIT" 100 96 git_reflog = readFile("${out_dir}/GIT_COMMIT") 101 97 gitRefOldValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][1] … … 170 166 } 171 167 172 def build_stage(String name ) {168 def build_stage(String name, Closure block ) { 173 169 stage_name = name 174 stage name170 stage(name, block) 175 171 } 176 172 … … 245 241 //Compilation script is done here but environnement set-up and error handling is done in main loop 246 242 def checkout() { 247 build_stage 'Checkout'243 build_stage('Checkout') { 248 244 //checkout the source code and clean the repo 249 245 checkout scm … … 254 250 //Reset the git repo so no local changes persist 255 251 sh 'git reset --hard' 252 } 256 253 } 257 254 258 255 def build() { 259 build_stage 'Build'256 build_stage('Build') { 260 257 261 258 def install_dir = pwd tmp: true … … 269 266 //Compile the project 270 267 sh 'make -j 8 --no-print-directory V=0 install' 268 } 271 269 } 272 270 273 271 def test() { 274 build_stage 'Test'272 build_stage('Test') { 275 273 276 274 //Run the tests from the tests directory … … 282 280 sh 'make -C src/tests' 283 281 } 282 } 284 283 } 285 284 286 285 def benchmark() { 287 build_stage 'Benchmark'286 build_stage('Benchmark') { 288 287 289 288 if( !do_benchmark ) return … … 294 293 //Append bench results 295 294 sh 'make -C src/benchmark --no-print-directory csv-data >> bench.csv' 295 } 296 296 } 297 297 298 298 def clean() { 299 build_stage 'Cleanup'299 build_stage('Cleanup') { 300 300 301 301 //do a maintainer-clean to make sure we need to remake from scratch 302 302 sh 'make maintainer-clean > /dev/null' 303 } 303 304 } 304 305 305 306 def build_doc() { 306 build_stage 'Documentation'307 build_stage('Documentation') { 307 308 308 309 if( !do_doc ) return … … 315 316 make_doc() 316 317 } 318 } 317 319 } 318 320 319 321 def publish() { 320 build_stage 'Publish'322 build_stage('Publish') { 321 323 322 324 if( !do_publish ) return … … 324 326 //Then publish the results 325 327 sh 'curl --silent --data @bench.csv http://plg2:8082/jenkins/publish > /dev/null || true' 328 } 326 329 } 327 330 -
src/Common/utility.h
rc10ee66 r298581c 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Dec 14 21:25:25 201613 // Update Count : 3 111 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri May 5 11:03:00 2017 13 // Update Count : 32 14 14 // 15 15 … … 322 322 std::string filename; 323 323 324 CodeLocation() 324 /// Create a new unset CodeLocation. 325 CodeLocation() 325 326 : linenumber( -1 ) 326 327 , filename("") 327 328 {} 328 329 330 /// Create a new CodeLocation with the given values. 329 331 CodeLocation( const char* filename, int lineno ) 330 332 : linenumber( lineno ) 331 333 , filename(filename ? filename : "") 332 334 {} 335 336 bool isSet () const { 337 return -1 != linenumber; 338 } 339 340 bool isUnset () const { 341 return !isSet(); 342 } 343 344 void unset () { 345 linenumber = -1; 346 filename = ""; 347 } 348 349 // Use field access for set. 333 350 }; 334 351 335 352 inline std::string to_string( const CodeLocation& location ) { 336 return location. linenumber >= 0? location.filename + ":" + std::to_string(location.linenumber) + " " : "";353 return location.isSet() ? location.filename + ":" + std::to_string(location.linenumber) + " " : ""; 337 354 } 338 355 #endif // _UTILITY_H -
src/benchmark/csv-data.c
rc10ee66 r298581c 100 100 } 101 101 102 //----------------------------------------------------------------------------- 103 // single internal sched entry 104 mon_t mon1; 105 106 condition cond1a; 107 condition cond1b; 108 109 thread thrd1a { long long int * out; }; 110 thread thrd1b {}; 111 112 void ?{}( thrd1a * this, long long int * out ) { 113 this->out = out; 114 } 115 116 void side1A( mon_t * mutex a, long long int * out ) { 117 long long int StartTime, EndTime; 118 119 StartTime = Time(); 120 for( int i = 0;; i++ ) { 121 signal(&cond1a); 122 if( i > N ) break; 123 wait(&cond1b); 124 } 125 EndTime = Time(); 126 127 *out = ( EndTime - StartTime ) / N; 128 } 129 130 void side1B( mon_t * mutex a ) { 131 for( int i = 0;; i++ ) { 132 signal(&cond1b); 133 if( i > N ) break; 134 wait(&cond1a); 135 } 136 } 137 138 void main( thrd1a * this ) { side1A( &mon1, this->out ); } 139 void main( thrd1b * this ) { side1B( &mon1 ); } 140 141 long long int measure_1_sched_int() { 142 long long int t; 143 { 144 thrd1a a = { &t }; 145 thrd1b b; 146 } 147 return t; 148 } 149 150 //----------------------------------------------------------------------------- 151 // multi internal sched entry 152 mon_t mon2; 153 154 condition cond2a; 155 condition cond2b; 156 157 thread thrd2a { long long int * out; }; 158 thread thrd2b {}; 159 160 void ?{}( thrd2a * this, long long int * out ) { 161 this->out = out; 162 } 163 164 void side2A( mon_t * mutex a, mon_t * mutex b, long long int * out ) { 165 long long int StartTime, EndTime; 166 167 StartTime = Time(); 168 for( int i = 0;; i++ ) { 169 signal(&cond2a); 170 if( i > N ) break; 171 wait(&cond2b); 172 } 173 EndTime = Time(); 174 175 *out = ( EndTime - StartTime ) / N; 176 } 177 178 void side2B( mon_t * mutex a, mon_t * mutex b ) { 179 for( int i = 0;; i++ ) { 180 signal(&cond2b); 181 if( i > N ) break; 182 wait(&cond2a); 183 } 184 } 185 186 void main( thrd2a * this ) { side2A( &mon1, &mon2, this->out ); } 187 void main( thrd2b * this ) { side2B( &mon1, &mon2 ); } 188 189 long long int measure_2_sched_int() { 190 long long int t; 191 { 192 thrd2a a = { &t }; 193 thrd2b b; 194 } 195 return t; 196 } 197 198 //----------------------------------------------------------------------------- 199 // main loop 102 200 int main() 103 201 { … … 106 204 sout | measure_thread() | ','; 107 205 sout | measure_1_monitor_entry() | ','; 108 sout | measure_2_monitor_entry() | endl; 109 } 206 sout | measure_2_monitor_entry() | ','; 207 sout | measure_1_sched_int() | ','; 208 sout | measure_2_sched_int() | endl; 209 }
Note: See TracChangeset
for help on using the changeset viewer.