Index: Jenkinsfile_disabled
===================================================================
--- Jenkinsfile_disabled	(revision f53acdf88f0790f441b622ba4624c865224726a7)
+++ Jenkinsfile_disabled	(revision cf32116a7c8c54e0d0839465e3e60ca0be290dbc)
@@ -106,24 +106,4 @@
 
 def build() {
-	// build_stage('Build', true) {
-	// 	// Build outside of the src tree to ease cleaning
-	// 	dir (BuildDir) {
-	// 		//Configure the conpilation (Output is not relevant)
-	// 		//Use the current directory as the installation target so nothing escapes the sandbox
-	// 		//Also specify the compiler by hand
-	// 		targets=""
-	// 		if( Settings.RunAllTests || Settings.RunBenchmark ) {
-	// 			targets="--with-target-hosts='host:debug,host:nodebug'"
-	// 		} else {
-	// 			targets="--with-target-hosts='host:debug'"
-	// 		}
-
-	// 		sh "${SrcDir}/configure CXX=${Settings.Compiler.CXX} CC=${Settings.Compiler.CC} ${Settings.Architecture.flags} ${targets} --quiet"
-
-	// 		//Compile the project
-	// 		sh 'make -j 8 --no-print-directory'
-	// 	}
-	// }
-
 	debug = true
 	release = Settings.RunAllTests || Settings.RunBenchmark
@@ -175,17 +155,26 @@
 
 def test() {
-	build_stage('Test: short', !Settings.RunAllTests) {
+	try {
+		build_stage('Test: short', !Settings.RunAllTests) {
+			dir (BuildDir) {
+				//Run the tests from the tests directory
+				sh "make --no-print-directory -C tests archiveerrors=${BuildDir}/tests/crashes/short"
+			}
+		}
+
+		build_stage('Test: full', Settings.RunAllTests) {
+			dir (BuildDir) {
+					//Run the tests from the tests directory
+					sh """make --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug"""
+					sh """make --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no  archiveerrors=${BuildDir}/tests/crashes/full-nodebug"""
+			}
+		}
+	}
+	catch (Exception err) {
+		echo "Archiving core dumps"
 		dir (BuildDir) {
-			//Run the tests from the tests directory
-			sh 'make --no-print-directory -C tests'
-		}
-	}
-
-	build_stage('Test: full', Settings.RunAllTests) {
-		dir (BuildDir) {
-			//Run the tests from the tests directory
-			sh 'make --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes'
-			sh 'make --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no '
-		}
+			archiveArtifacts artifacts: "tests/crashes/**/*", fingerprint: true
+		}
+		throw err
 	}
 }
@@ -195,5 +184,5 @@
 		dir (BuildDir) {
 			//Append bench results
-			sh "make --no-print-directory -C benchmark jenkins"
+			sh "make --no-print-directory -C benchmark jenkins arch=${Settings.Architecture.name}"
 		}
 	}
@@ -217,12 +206,16 @@
 		if( Settings.Publish && !Settings.RunBenchmark ) { echo 'No results to publish!!!' }
 
-		def groupCompile = new PlotGroup('Compilation', 'seconds', true)
-		def groupConcurrency = new PlotGroup('Concurrency', 'nanoseconds', false)
+		def groupCompile = new PlotGroup('Compilation', 'duration (s) - lower is better', true)
+		def groupConcurrency = new PlotGroup('Concurrency', 'duration (n) - lower is better', false)
 
 		//Then publish the results
-		do_plot(Settings.RunBenchmark && Settings.Publish, 'compile'  , groupCompile    , 'Compilation')
-		do_plot(Settings.RunBenchmark && Settings.Publish, 'ctxswitch', groupConcurrency, 'Context Switching')
-		do_plot(Settings.RunBenchmark && Settings.Publish, 'mutex'    , groupConcurrency, 'Mutual Exclusion')
-		do_plot(Settings.RunBenchmark && Settings.Publish, 'signal'   , groupConcurrency, 'Internal and External Scheduling')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'compile'       , groupCompile    , false, 'Compilation')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'compile.diff'  , groupCompile    , true , 'Compilation (relative)')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'ctxswitch'     , groupConcurrency, false, 'Context Switching')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'ctxswitch.diff', groupConcurrency, true , 'Context Switching (relative)')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'mutex'         , groupConcurrency, false, 'Mutual Exclusion')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'mutex.diff'    , groupConcurrency, true , 'Mutual Exclusion (relative)')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'signal'        , groupConcurrency, false, 'Internal and External Scheduling')
+		do_plot(Settings.RunBenchmark && Settings.Publish, 'signal.diff'   , groupConcurrency, true , 'Internal and External Scheduling (relative)')
 	}
 }
@@ -482,5 +475,5 @@
 }
 
-def do_plot(boolean new_data, String file, PlotGroup group, String title) {
+def do_plot(boolean new_data, String file, PlotGroup group, boolean relative, String title) {
 
 	if(new_data) {
@@ -505,5 +498,5 @@
 			exclZero: false,
 			keepRecords: false,
-			logarithmic: group.log,
+			logarithmic: !relative && group.log,
 			numBuilds: '120',
 			useDescr: true,
