From 4b52501b4cd5c33e7180075998e85b6478450cb5 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 10 Feb 2014 09:17:46 +0100 Subject: [PATCH] Supernovae mode was deprecated. It is currently broken too. Remove it. --- .gitignore | 3 +- ChangeLog | 7 +- buildtools/Cmake/CTestConfig.cmake | 4 - buildtools/Cmake/CompleteInFiles.cmake | 2 - buildtools/Cmake/DefinePackages.cmake | 2 - buildtools/Cmake/Distrib.cmake | 7 -- buildtools/Cmake/MakeLib.cmake | 18 ---- buildtools/Cmake/Modules/FindNS3.cmake | 4 - buildtools/Cmake/Option.cmake | 1 - buildtools/Cmake/PrintArgs.cmake | 1 - buildtools/Cmake/Supernovae.cmake | 60 ------------- doc/doxygen/install.doc | 7 -- include/xbt/log.h | 2 +- src/mk_supernovae.pl | 116 ------------------------- src/xbt/RngStream.c | 12 --- 15 files changed, 7 insertions(+), 239 deletions(-) delete mode 100644 buildtools/Cmake/Supernovae.cmake delete mode 100644 src/mk_supernovae.pl diff --git a/.gitignore b/.gitignore index dbcfa12dc4..8897d7fc9e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,10 +36,9 @@ examples/lua/console/simgrid.so simgrid.jar ################################################ -### Units and supernovae files +### Unit files src/simgrid_units_main.c src/*_unit.c -src/supernovae_*.c ################################################ ### Generated files diff --git a/ChangeLog b/ChangeLog index 3d7c651ed6..b61daceda8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,6 @@ SimGrid (3.11) NOT RELEASED; urgency=low TENTATIVE RELEASE GOALS for 3.11: - * Consider the removal of Supernovae mode if no user has manifested since the - release of version 3.10. * Switch to tesh.pl, and kill the now unused parts of xbt that seem fragile * Clean up CMake files (may need a full rewrite). Non exhaustive list of subgoals: @@ -24,6 +22,11 @@ SimGrid (3.11) NOT RELEASED; urgency=low SURF: * [FIXME: elaborate] Rewrite Surf in C++ + Build System: + * Supernovae build mode is definitively removed. It was used to improve + inlining and inter-module optimizations. It is nowadays superseded by + link-time optimizations commonly available in compilers. + -- $date Da SimGrid team SimGrid (3.10) stable; urgency=low diff --git a/buildtools/Cmake/CTestConfig.cmake b/buildtools/Cmake/CTestConfig.cmake index e51e466323..7c961b1882 100644 --- a/buildtools/Cmake/CTestConfig.cmake +++ b/buildtools/Cmake/CTestConfig.cmake @@ -18,10 +18,6 @@ if(enable_compile_warnings AND enable_compile_optimizations) SET(BUILDNAME "FULL_FLAGS" CACHE TYPE INTERNAL FORCE) endif() -if(enable_supernovae) - SET(BUILDNAME "SUPERNOVAE" CACHE TYPE INTERNAL FORCE) -endif() - if(HAVE_GTNETS) SET(BUILDNAME "GTNETS" CACHE TYPE INTERNAL FORCE) endif() diff --git a/buildtools/Cmake/CompleteInFiles.cmake b/buildtools/Cmake/CompleteInFiles.cmake index f1ff59fe89..82be2102ed 100644 --- a/buildtools/Cmake/CompleteInFiles.cmake +++ b/buildtools/Cmake/CompleteInFiles.cmake @@ -889,8 +889,6 @@ set(generated_files_to_clean ${CMAKE_BINARY_DIR}/bin/colorize ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml ${CMAKE_BINARY_DIR}/examples/smpi/tracing/smpi_traced.trace - ${CMAKE_BINARY_DIR}/src/supernovae_sg.c - ${CMAKE_BINARY_DIR}/src/supernovae_smpi.c ) if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}") diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index b4b6295c9b..b3a3ce2598 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -19,7 +19,6 @@ set(EXTRA_DIST src/include/surf/trace_mgr.h src/include/xbt/wine_dbghelp.h src/include/xbt/xbt_os_time.h - src/mk_supernovae.pl src/msg/msg_mailbox.h src/msg/msg_private.h src/portable.h @@ -1027,7 +1026,6 @@ set(CMAKE_SOURCE_FILES buildtools/Cmake/Scripts/preinstall.sh buildtools/Cmake/Scripts/tesh.pl buildtools/Cmake/Scripts/update_tesh.pl - buildtools/Cmake/Supernovae.cmake buildtools/Cmake/UnitTesting.cmake buildtools/Cmake/src/internal_config.h.in buildtools/Cmake/src/simgrid.nsi.in diff --git a/buildtools/Cmake/Distrib.cmake b/buildtools/Cmake/Distrib.cmake index 9b9b00a7dd..07ea78675d 100644 --- a/buildtools/Cmake/Distrib.cmake +++ b/buildtools/Cmake/Distrib.cmake @@ -374,11 +374,4 @@ add_custom_target(maintainer-clean WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}" ) -add_custom_target(supernovae-clean - COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_sg.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_smpi.c - WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}" - ) - - include(CPack) diff --git a/buildtools/Cmake/MakeLib.cmake b/buildtools/Cmake/MakeLib.cmake index adcd92e246..95f75765c4 100644 --- a/buildtools/Cmake/MakeLib.cmake +++ b/buildtools/Cmake/MakeLib.cmake @@ -3,11 +3,8 @@ ############################### # Declare the library content # ############################### -# If we want supernovae, rewrite the libs' content to use it -include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Supernovae.cmake) # Actually declare our libraries - add_library(simgrid SHARED ${simgrid_sources}) set_target_properties(simgrid PROPERTIES VERSION ${libsimgrid_version}) @@ -21,21 +18,6 @@ endif() add_dependencies(simgrid maintainer_files) -# if supernovaeing, we need some depends to make sure that the source gets generated -if (enable_supernovae) - add_dependencies(simgrid ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c) - if(enable_lib_static) - add_dependencies(simgrid_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c) - endif() - - if(enable_smpi) - add_dependencies(simgrid ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c) - if(enable_lib_static) - add_dependencies(simgrid_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c) - endif() - endif() -endif() - # Compute the dependencies of SimGrid ##################################### set(SIMGRID_DEP "-lm -lstdc++") diff --git a/buildtools/Cmake/Modules/FindNS3.cmake b/buildtools/Cmake/Modules/FindNS3.cmake index 04e568c836..8bb4c0c480 100644 --- a/buildtools/Cmake/Modules/FindNS3.cmake +++ b/buildtools/Cmake/Modules/FindNS3.cmake @@ -88,7 +88,3 @@ if(HAVE_NS3) else() message(STATUS "Warning: To use NS-3 Please install ns3 at least version 3.10 (http://www.nsnam.org/releases/)") endif() - -if(HAVE_NS3 AND enable_supernovae) - set(enable_supernovae OFF) -endif() diff --git a/buildtools/Cmake/Option.cmake b/buildtools/Cmake/Option.cmake index f9f4d28020..5842fe2da0 100644 --- a/buildtools/Cmake/Option.cmake +++ b/buildtools/Cmake/Option.cmake @@ -36,7 +36,6 @@ option(enable_model-checking "Turn this on to experiment with our prototype of m option(enable_lib_static "" off) option(enable_jedule "Jedule output of SimDAG." off) option(enable_debug "Turn this off to remove all debug messages at compile time (faster, but no debug activable)" on) -option(enable_supernovae "Whether Supernovae mode (helping compiler optimization) is activated." off) option(enable_msg_deprecated "This option enable the use of msg deprecated functions" off) if(WIN32) diff --git a/buildtools/Cmake/PrintArgs.cmake b/buildtools/Cmake/PrintArgs.cmake index 6e12615bef..c6e0bd1c60 100644 --- a/buildtools/Cmake/PrintArgs.cmake +++ b/buildtools/Cmake/PrintArgs.cmake @@ -117,7 +117,6 @@ message(" Compile Smpi f90 ....: ${SMPI_F90}") message(" Compile Static ......: ${enable_lib_static}") message("") message(" Maintainer mode .....: ${enable_maintainer_mode}") -message(" Supernovae mode .....: ${enable_supernovae}") message(" Model checking ......: ${enable_model-checking}") message(" Tracing mode ........: ${enable_tracing}") message(" Jedule mode ........: ${enable_jedule}") diff --git a/buildtools/Cmake/Supernovae.cmake b/buildtools/Cmake/Supernovae.cmake deleted file mode 100644 index 347192e9f6..0000000000 --- a/buildtools/Cmake/Supernovae.cmake +++ /dev/null @@ -1,60 +0,0 @@ -### Make supernovae files and libs - -############################################################################# -### Add here every files that should not be supernovaed (generated files) ### -############################################################################# -set(simgrid_fragile_sources - src/simdag/sd_daxloader.c - src/surf/surfxml_parse.c - src/xbt/graphxml_parse.c - src/xbt/mmalloc/mm.c - ${GTNETS_USED} - ) - -##################################################### -### END OF CONFIGURATION, NO NEED TO READ FURTHER ### -##################################################### - -### Rebuild the supernovae source files -if (enable_supernovae) # I need supernovae - - message(WARNING -"==============================================================================\n" -"WARNING\n" -"Supernovae builds are deprecated, and expected to be removed in the next version of SimGrid.\n" -"If you want this feature to be kept, please tell us at .\n" -"=============================================================================== -") - - # supernovae files are generated. I promise - set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c - PROPERTIES GENERATED true) - set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c - PROPERTIES GENERATED true) - - ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c - DEPENDS ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${simgrid_sources} - COMMAND perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c '--fragile=${simgrid_fragile_sources}' '${simgrid_sources}' - WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY} - COMMENT "Generating supernovae_sg.c" - ) - - - ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c - DEPENDS ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl ${SMPI_SRC} - COMMAND perl ${CMAKE_HOME_DIRECTORY}/src/mk_supernovae.pl --out=${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c '${SMPI_SRC}' - WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY} - COMMENT "Generating supernovae_smpi.c" - ) - - ### Change the content of the libraries so that it contains only supernovae+fragiles - set(simgrid_sources - ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c - ${simgrid_fragile_sources}) - - set(SMPI_SRC - ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c) - -endif() # I need supernovae diff --git a/doc/doxygen/install.doc b/doc/doxygen/install.doc index 8867f4c70f..63aebcf2ac 100644 --- a/doc/doxygen/install.doc +++ b/doc/doxygen/install.doc @@ -188,13 +188,6 @@ accepts several options, as listed below. your simulation speed even if you simulate without activating the model-checker. We are working on improving this situation. - @li enable_supernovae (ON/OFF): If you use an ancient - compiler (such as gcc prior to 4.6), you want to enable this - option to ensure that the whole SimGrid library is presented to - the compiler as a unique compilation unit to allow cross-units - optimizations. This is useless on modern compilers (and will - soon be droped). - @li enable_compile_warnings (ON/OFF): request the compiler to issue error message whenever the source code is not perfectly clean. If you develop SimGrid itself, you must activate it to diff --git a/include/xbt/log.h b/include/xbt/log.h index 471ee3adc6..c33d0ff2c1 100644 --- a/include/xbt/log.h +++ b/include/xbt/log.h @@ -183,7 +183,7 @@ typedef enum { * Indicates which category is the default one. */ -#if defined(XBT_LOG_MAYDAY) || defined(SUPERNOVAE_MODE) /*|| defined (NLOG) * turning logging off */ +#if defined(XBT_LOG_MAYDAY) /*|| defined (NLOG) * turning logging off */ # define XBT_LOG_DEFAULT_CATEGORY(cname) #else # define XBT_LOG_DEFAULT_CATEGORY(cname) \ diff --git a/src/mk_supernovae.pl b/src/mk_supernovae.pl deleted file mode 100644 index e0ea6dcbf2..0000000000 --- a/src/mk_supernovae.pl +++ /dev/null @@ -1,116 +0,0 @@ -#! /usr/bin/perl - -# Copyright (c) 2010-2011, 2014. The SimGrid Team. -# All rights reserved. - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the license (GNU LGPL) which comes with this package. - -use strict; -use Getopt::Long qw(GetOptions); - -#open TMP,">mk_supernovae.pl.args"; -#map {print TMP "$_ "} @ARGV; -#close TMP; - -sub usage($) { - my $ret; - print "USAGE: mk_supernovae.pl [--fragile=file]* --out=file file1 file2*\n"; - print " --help: show this message\n"; - print " --fragile=file: specify that file is fragile and shouldn't be supernovaed\n"; - print " --out=file: specify the name of the output file\n"; - print "elements may be separated by semi-columns (;) instead of spaces, too\n"; - exit $ret; -} - -my @fragile_files=undef; -my $outfile=undef; -my $help; - -Getopt::Long::config('permute','no_getopt_compat', 'no_auto_abbrev'); -GetOptions( - 'help|h' => \$help, - - 'fragile=s' =>\@fragile_files, - 'out=s' =>\$outfile) or usage(1); - -@fragile_files = split(/;/,join(';',@fragile_files)); -@fragile_files = split(/ /,join(' ',@fragile_files)); - -usage(0) if (defined($help)); -unless(defined($outfile)) { - print "ERROR: No outfile defined.\n"; - usage(1); -} - -#print "mk_supernovae: generate $outfile\n"; - -open OUT, ">$outfile" or die "ERROR: cannot open $outfile: $!\n"; - -print OUT < -#include "portable.h" -#include "xbt.h" - -EOF - ; - -sub readfile($) { - my $filename=shift; - open IN,"$filename" || die "ERROR: cannot read $filename: $!\n"; - my $res; - while () { - $res .= $_; - } - close IN; - return $res; -} - - -my %fragile; -map {$fragile{$_}=1} @fragile_files; -my @args = split(/;/,join(';',@ARGV)); -@args = split(/ /,join(' ',@args)); -my $nbfile=0; -foreach my $file (@args) { - if ($fragile{$file}) { - print "mk_supernovae: $file is fragile, skip it\n"; - next; - } -# print "mk_supernovae: process $file\n"; - $nbfile++; - - my $needundef=1; - print OUT "/* file $file */\n"; - if ($file eq "xbt/log.c") { - print OUT " #define _simgrid_log_category__default &_simgrid_log_category__log\n"; - } else { - my $ctn = readfile($file); - if ($ctn =~ m/XBT_LOG_[^ ]*?DEFAULT_[^ ]*?CATEGORY/s) { - my $default=$ctn; - $default =~ s/.*XBT_LOG_[^ ]*?DEFAULT_[^ ]*?CATEGORY[^(]*\(([^,)]*).*$/$1/s; - print OUT " #define _simgrid_log_category__default &_simgrid_log_category__$default\n"; - } else { - print OUT " /* no default category in file $file */\n"; - $needundef = 0; - } - } - print OUT " #include \"$file\"\n"; - print OUT " #undef _simgrid_log_category__default\n" if $needundef; - print OUT "\n"; -} -close OUT; -print "mk_supernovae: $outfile contains $nbfile files inlined\n"; diff --git a/src/xbt/RngStream.c b/src/xbt/RngStream.c index 5adcfcc804..e4dbbb5a74 100644 --- a/src/xbt/RngStream.c +++ b/src/xbt/RngStream.c @@ -545,15 +545,3 @@ int RngStream_RandInt (RngStream g, int i, int j) { return i + (int) ((j - i + 1.0) * RngStream_RandU01 (g)); } - -/* Undefine this terms, or supernovae build will fail. */ -#undef norm -#undef m1 -#undef m2 -#undef a12 -#undef a13n -#undef a21 -#undef a23n -#undef two17 -#undef two53 -#undef fact -- 2.20.1