diff --git a/eo/.cproject b/eo/.cproject deleted file mode 100644 index b6834b52..00000000 --- a/eo/.cproject +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -make - -Lesson1 -true -true -true - - - - - - - - - diff --git a/eo/.cvsignore b/eo/.cvsignore deleted file mode 100644 index 3e34ecb4..00000000 --- a/eo/.cvsignore +++ /dev/null @@ -1,25 +0,0 @@ -*.la -*.lo -.deps -.libs -Makefile -Makefile.in -aclocal.m4 -autom4te.cache -build* -confdefs.h -config.cache -config.guess -config.h -config.h.in -config.log -config.status -config.sub -configure -depcomp -install-sh -libtool -missing -mkinstalldirs -stamp-h -stamp-h.in diff --git a/eo/.project b/eo/.project deleted file mode 100644 index 995b188c..00000000 --- a/eo/.project +++ /dev/null @@ -1,82 +0,0 @@ - - - eo - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - ?name? - - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.buildLocation - ${workspace_loc:/eo} - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.ccnature - - diff --git a/eo/CHANGELOG b/eo/CHANGELOG index 56e4df4b..8a518c2f 100644 --- a/eo/CHANGELOG +++ b/eo/CHANGELOG @@ -1,3 +1,1026 @@ +Author: Caner Candan +Date: Tue May 10 15:33:42 2011 +0200 + + * NEWS + +Author: Caner Candan +Date: Tue May 10 11:45:37 2011 +0200 + + - old eclipse files + +Author: Caner Candan +Date: Tue May 10 11:44:53 2011 +0200 + + * ConfigureChecks.cmake: issue fixed + +Author: Caner Candan +Date: Tue May 10 10:34:35 2011 +0200 + + - removed useless .cvsignore files since we are using git now + +Author: nojhan +Date: Tue May 10 00:31:18 2011 +0200 + + updated build instructions + +Author: Caner Candan +Date: Mon May 9 17:21:18 2011 +0200 + + + build_gcc_linux_pyeo + +Author: Caner Candan +Date: Mon May 9 17:21:16 2011 +0200 + + * build_gcc_linux_unittest + +Author: Caner Candan +Date: Mon May 9 17:20:33 2011 +0200 + + + build_gcc_linux_stl_parallel + +Author: Caner Candan +Date: Fri May 6 16:01:28 2011 +0200 + + * pyeo + +Author: Caner Candan +Date: Fri May 6 11:14:39 2011 +0200 + + * apply: needed eoLogger header file inclusion + +Author: Caner Candan +Date: Thu May 5 17:15:10 2011 +0200 + + * whitespace cleanup + +Author: Caner Candan +Date: Thu May 5 16:54:00 2011 +0200 + + * indentations + whitespace cleanup + +Author: Caner Candan +Date: Thu May 5 16:53:31 2011 +0200 + + * pyeo/PyEO.cpp: renamed module name + +Author: Caner Candan +Date: Thu May 5 16:53:02 2011 +0200 + + * pyeo/CMakeLists.txt: auto find cpp files + +Author: Caner Candan +Date: Thu May 5 11:47:30 2011 +0200 + + * pyeo cmake config file + +Merge: 7dcc7b6 f984839 +Author: Caner Candan +Date: Wed May 4 17:57:54 2011 +0200 + + Merge branch 'openmp' + +Author: Caner Candan +Date: Tue Mar 15 18:05:45 2011 +0100 + + * edoSampler: sampler method protected + +Author: Caner Candan +Date: Tue Mar 15 16:39:46 2011 +0100 + + * eoLogger: forgot to close opened file + +Author: Caner Candan +Date: Wed May 4 17:29:45 2011 +0200 + + * pyeo: updated pyeo in order to make it works + +Author: Caner Candan +Date: Wed May 4 17:28:46 2011 +0200 + + * eoReduceSplit.h: bad syntax in using eo::log + +Author: Caner Candan +Date: Wed Mar 30 15:52:23 2011 +0200 + + * eoOpContainer: call to eoGenOp::apply instead of operator() to avoid calling reserve + +Author: Caner Candan +Date: Wed Mar 30 15:50:19 2011 +0200 + + * eoEasyEA: pop reserve at each call to algo + +Author: Caner Candan +Date: Thu Mar 24 12:52:27 2011 +0100 + + * switched eoGenOp::apply method from protected to public in order to be visible from eoSequentialOp + +Author: Caner Candan +Date: Wed Mar 23 17:34:35 2011 +0100 + + * eoEasyEA: moved offspring into attributes space in order to avoid memory reallocation when we restart + +Merge: 007aae6 bc30b2c +Author: Caner Candan +Date: Fri Mar 18 11:20:09 2011 +0100 + + Merge branch 'master' into openmp + +Merge: aa23cec 8f6e4b2 +Author: Caner Candan +Date: Fri Mar 18 11:10:59 2011 +0100 + + Merge branch 'master' of ssh://localhost:9001/gitroot/eodev/eodev + +Merge: e7b6b17 16c2e9d +Author: Caner Candan +Date: Fri Mar 18 11:10:14 2011 +0100 + + Merge branch 'openmp' of ssh://localhost:9001/gitroot/eodev/eodev into openmp + +Merge: 9597010 8f6e4b2 +Author: Caner Candan +Date: Mon Mar 14 17:30:46 2011 +0100 + + Merge branch 'master' into openmp + +Author: Caner Candan +Date: Mon Mar 14 17:29:20 2011 +0100 + + * pipecom: added an argument to printf generating a warning + +Merge: cbc44d4 9e95eef +Author: Caner Candan +Date: Tue Mar 8 00:20:37 2011 +0100 + + Merge branch 'openmp' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev into openmp + +Merge: 2044d92 90863fd +Author: Caner Candan +Date: Tue Mar 8 00:19:46 2011 +0100 + + Merge branch 'master' into openmp + +Author: Caner Candan +Date: Tue Mar 8 00:08:18 2011 +0100 + + * disabled app/gprop temporary because of the incompatibility with gcc version higher than 4.5.1 + +Merge: 9e95eef aa23cec +Author: Caner Candan +Date: Thu Feb 24 14:29:29 2011 +0100 + + Merge branch 'master' into openmp + +Author: Caner Candan +Date: Thu Feb 24 11:10:47 2011 +0100 + + + added install.cmake to configure dependancies paths + +Author: Caner Candan +Date: Thu Feb 24 11:09:51 2011 +0100 + + * fixed issues on the code to be compatible with last version of boost + +Author: Caner Candan +Date: Thu Feb 24 10:32:13 2011 +0100 + + * application/common/cmakelists.txt: fixed issues with copy of files + +Author: Caner Candan +Date: Tue Feb 8 10:59:00 2011 +0100 + + * eoParallel: added the both parameters enable_results and do_measure + +Author: Caner Candan +Date: Fri Feb 4 16:29:27 2011 +0100 + + * t-openmpy.*: added a header + +Author: Caner Candan +Date: Fri Feb 4 16:28:24 2011 +0100 + + * eoParallel: added the parameter enableResults + +Merge: a733983 2044d92 +Author: Caner Candan +Date: Fri Feb 4 14:10:10 2011 +0100 + + Merge branch 'openmp' of ssh://localhost:9001/gitroot/eodev/eodev into openmp + +Merge: 77a92ff 61faa63 +Author: Caner Candan +Date: Fri Feb 4 14:09:12 2011 +0100 + + Merge branch 'master' into openmp + +Author: Caner Candan +Date: Wed Feb 2 23:50:58 2011 +0100 + + * eoParallel: added the call to omp_set_num_threads to define the number of threads with parameters + +Merge: 54e2a8b 61faa63 +Author: Caner Candan +Date: Fri Jan 28 15:27:24 2011 +0100 + + Merge branch 'master' into openmp + +Author: Caner Candan +Date: Fri Jan 28 14:38:50 2011 +0100 + + * apply.h: size variable missing without openmp + +Author: Caner Candan +Date: Fri Jan 28 11:11:20 2011 +0100 + + * a little update in building script files + +Merge: 4c561f9 36fe44b +Author: Caner Candan +Date: Fri Jan 28 10:43:23 2011 +0100 + + Merge branch 'master' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev + +Author: Caner Candan +Date: Thu Jan 27 17:50:11 2011 +0100 + + * removed some warnings + +Merge: db4eda2 9635901 +Author: Caner Candan +Date: Thu Jan 27 14:41:42 2011 +0100 + + Merge branch 'openmp' of ssh://localhost:9001/gitroot/eodev/eodev into openmp + +Author: Caner Candan +Date: Thu Jan 27 14:41:17 2011 +0100 + + * eoParallel: added a missing attribute + +Merge: 4c561f9 32a183e +Author: Caner Candan +Date: Thu Jan 27 13:53:42 2011 +0100 + + Merge branch 'openmp' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev into openmp + + Conflicts: + eo/test/CMakeLists.txt + +Author: Johann Dreo +Date: Thu Jan 27 11:59:14 2011 +0100 + + a very simple script to create snapshot of the current head + +Author: Johann Dreo +Date: Thu Jan 27 11:58:21 2011 +0100 + + move edo stuff, that was in the wriong place after the merge, in the edo directory + +Merge: e6ee096 d618ab0 +Author: Johann Dreo +Date: Thu Jan 27 11:36:55 2011 +0100 + + Merge branch 'edo' + +Merge: 12f4f24 8c4b160 +Author: Johann Dreo +Date: Thu Jan 27 11:32:21 2011 +0100 + + Merge branch 'master' of ssh://eodev/gitroot/eodev/eodev + +Author: Johann Dreo +Date: Thu Jan 27 11:23:23 2011 +0100 + + rename everything from 'do' to 'edo' + +Merge: 6e2041d 5fe07ab +Author: Caner Candan +Date: Thu Jan 27 10:49:41 2011 +0100 + + Merge branch 'master' into symlink + +Merge: 3d06d4a 5fe07ab +Author: Caner Candan +Date: Thu Jan 27 10:45:07 2011 +0100 + + Merge branch 'master' into openmp + + Conflicts: + eo/src/eo + +Author: Caner Candan +Date: Thu Jan 27 10:43:13 2011 +0100 + + + eoParallel: nthreads option * apply.h: mangled the openmp code with pre-processing conditions + +Author: Caner Candan +Date: Thu Jan 27 10:39:15 2011 +0100 + + fixed an issue in eoParallel class + + Conflicts: + + eo/src/utils/eoParallel.cpp + +Author: Caner Candan +Date: Tue Dec 28 16:42:53 2010 +0100 + + * updated eoParallel class in order to define the result filename according to the parallelization mode + +Author: Caner Candan +Date: Thu Jan 27 10:35:49 2011 +0100 + + - removed old parallelization parameters from the old-style from eoParser class + + Conflicts: + + eo/src/utils/eoParser.h + +Author: Caner Candan +Date: Thu Jan 27 10:31:28 2011 +0100 + + * changed apply.h to use new parallelization s parameters + + Conflicts: + + eo/src/apply.h + +Author: Caner Candan +Date: Thu Jan 27 10:30:40 2011 +0100 + + added measure into apply function + + Conflicts: + + eo/src/apply.h + +Author: Caner Candan +Date: Thu Jan 27 10:29:09 2011 +0100 + + + now you are able to enable or not parallelization with the option --parallelize-loops=1|0 + + Conflicts: + + eo/src/apply.h + eo/src/utils/eoParser.cpp + eo/src/utils/eoParser.h + +Author: Caner Candan +Date: Thu Jan 27 10:25:22 2011 +0100 + + add the parser/logger to the general header + + Conflicts: + + eo/src/eo + +Author: Caner Candan +Date: Wed Jan 26 18:10:34 2011 +0100 + + - removed t-eoDualFitness from test/CMakeLists.txt because it fails + + Conflicts: + + eo/test/CMakeLists.txt + +Author: Caner Candan +Date: Thu Dec 23 12:22:29 2010 +0100 + + + add the value() method in eoParam used by dae + +Author: Caner Candan +Date: Wed Dec 22 13:40:49 2010 +0100 + + * package dependancies changed + +Author: Caner Candan +Date: Wed Jan 26 18:09:37 2011 +0100 + + * doc: solved some mistakes + + Conflicts: + + eo/doc/index.h + +Author: Caner Candan +Date: Thu Jan 6 09:16:01 2011 +0100 + + * a little update tu be compatible with gnuplot + +Author: Caner Candan +Date: Wed Jan 5 16:07:08 2011 +0100 + + * --parallelize-prefix parameter description + +Author: Caner Candan +Date: Tue Dec 28 22:54:10 2010 +0100 + + fixed an issue in eoParallel class + +Author: Caner Candan +Date: Tue Dec 28 16:43:44 2010 +0100 + + + added a test file for eoParallel class + +Author: Caner Candan +Date: Tue Dec 28 16:42:53 2010 +0100 + + * updated eoParallel class in order to define the result filename according to the parallelization mode + +Author: Caner Candan +Date: Tue Dec 28 16:41:14 2010 +0100 + + * apply.h: now results stored to a filename defined with parallelization parameters + +Author: Caner Candan +Date: Sun Dec 26 19:19:20 2010 +0100 + + * added eoParallel header inclusion to eo + +Author: Caner Candan +Date: Sun Dec 26 19:13:43 2010 +0100 + + - removed old parallelization parameters from the old-style from eoParser class + +Author: Caner Candan +Date: Sun Dec 26 19:12:20 2010 +0100 + + * updated cmakelists.txt to compile new eoParallel class + +Author: Caner Candan +Date: Sun Dec 26 19:11:00 2010 +0100 + + + created new eoParallel class with a global variable eo::parallel in order to store all parameters tied to parallelization and to access from anywhere + +Author: Caner Candan +Date: Sun Dec 26 19:09:08 2010 +0100 + + * changed apply.h to use new parallelization s parameters + +Author: Caner Candan +Date: Thu Dec 23 23:03:02 2010 +0100 + + added measure into apply function + +Author: Caner Candan +Date: Thu Dec 23 18:09:25 2010 +0100 + + + now you are able to enable or not parallelization with the option --parallelize-loops=1|0 + +Author: Johann Dreo +Date: Thu Dec 16 15:51:28 2010 +0100 + + set the version to 1.1.1-edge + +Author: Johann Dreo +Date: Thu Dec 16 15:50:26 2010 +0100 + + evaluator that throw an exception if a maximum CPU user time has been reached, for POSIX systems + +Author: Johann Dreo +Date: Tue Dec 14 15:27:26 2010 +0100 + + add the parser/logger to the general header + +Merge: df57a10 5fe07ab +Author: Johann Dreo +Date: Wed Jan 26 16:31:55 2011 +0100 + + Merge branch 'master' of ssh://eodev/gitroot/eodev/eodev + +Author: Caner Candan +Date: Thu Jan 20 19:07:41 2011 +0100 + + - removed t-eoDualFitness from test/CMakeLists.txt because it fails + +Merge: 9e93f52 1e177e1 +Author: Johann Dreo +Date: Tue Jan 4 10:42:20 2011 +0100 + + Merge branch 'master' of ssh://eodev/gitroot/eodev/eodev + +Author: Caner Candan +Date: Thu Dec 23 14:31:34 2010 +0100 + + fixed a mistake in cflags setting about openmp flags + +Author: Caner Candan +Date: Thu Dec 23 12:22:29 2010 +0100 + + + add the value() method in eoParam used by dae + +Author: Johann Dreo +Date: Wed Dec 22 18:29:30 2010 +0100 + + const parameter + intermediate reused variable + +Author: Johann Dreo +Date: Wed Dec 22 18:25:44 2010 +0100 + + missing include of the eoLogger header + +Author: Caner Candan +Date: Wed Dec 22 18:23:45 2010 +0100 + + * now symlink script more generic + +Author: Caner Candan +Date: Wed Dec 22 17:25:40 2010 +0100 + + changed cmakelists.txt to generate install symlink script + +Author: Caner Candan +Date: Wed Dec 22 17:24:34 2010 +0100 + + added install_symlink script + +Author: Caner Candan +Date: Wed Dec 22 13:40:49 2010 +0100 + + * package dependancies changed + +Author: Caner Candan +Date: Wed Dec 22 10:25:13 2010 +0100 + + * doc: solved some mistakes + +Author: Johann Dreo +Date: Fri Dec 17 11:25:58 2010 +0100 + + Add a value(ValueType) method for ValueParam, to directly change the value using the templatized type. Use two intermediate streamstring conversions. + +Author: Johann Dreo +Date: Fri Dec 17 10:39:42 2010 +0100 + + eoMaxTimeException is not used only for wallclock time, set a more general message + +Author: Johann Dreo +Date: Thu Dec 16 15:51:28 2010 +0100 + + set the version to 1.1.1-edge + +Author: Johann Dreo +Date: Thu Dec 16 15:50:26 2010 +0100 + + evaluator that throw an exception if a maximum CPU user time has been reached, for POSIX systems + +Author: Johann Dreo +Date: Tue Dec 14 15:27:26 2010 +0100 + + add the parser/logger to the general header + +Author: Caner Candan +Date: Sun Nov 28 14:21:26 2010 +0100 + + now we can select which measures we want + +Author: Caner Candan +Date: Sun Nov 28 13:36:25 2010 +0100 + + using rdtsc for rng seed with mersenne twister + +Author: Caner Candan +Date: Sun Nov 28 03:41:09 2010 +0100 + + update + +Author: Caner Candan +Date: Sun Nov 28 03:35:21 2010 +0100 + + added variable time measure + +Author: Caner Candan +Date: Sun Nov 28 03:32:53 2010 +0100 + + added variable time measure + +Author: Caner Candan +Date: Sun Nov 28 03:24:02 2010 +0100 + + added variable time measure + +Author: Caner Candan +Date: Sun Nov 28 00:19:46 2010 +0100 + + added n processus and fixed bound parameters + +Author: Caner Candan +Date: Sun Nov 28 00:12:08 2010 +0100 + + added n processus and fixed bound parameters + +Author: Caner Candan +Date: Sat Nov 27 23:26:16 2010 +0100 + + onlyexec and onlyprint parameters added on openmp script + +Author: Caner Candan +Date: Sat Nov 27 23:22:54 2010 +0100 + + onlyexec and onlyprint parameters added on openmp script + +Author: Caner Candan +Date: Sat Nov 27 23:07:11 2010 +0100 + + t-openmp.py released + +Author: Caner Candan +Date: Sat Nov 27 21:27:41 2010 +0100 + + changed output results name + +Author: Caner Candan +Date: Sat Nov 27 21:24:07 2010 +0100 + + added t-openmp.py + +Author: Caner Candan +Date: Sat Nov 27 16:19:51 2010 +0100 + + added prefix parameter on t-openmp + +Author: Caner Candan +Date: Mon Nov 22 19:16:09 2010 +0100 + + updated Dp = Tp / TDp + +Author: Caner Candan +Date: Mon Nov 22 18:20:38 2010 +0100 + + remode two - on results filename + +Author: Caner Candan +Date: Mon Nov 22 18:08:58 2010 +0100 + + updated to D_p = T_Dp / T_p and avoid all D_p higher than the number of tasks used + +Author: Caner Candan +Date: Mon Nov 22 17:43:52 2010 +0100 + + popStep and dimStep replaced by pS and dS on the results filename + +Author: Caner Candan +Date: Mon Nov 22 17:37:44 2010 +0100 + + added popStep and dimStep value on the result filename + +Author: Caner Candan +Date: Mon Nov 22 17:35:06 2010 +0100 + + created two boxplot script files one to generate image the other to display with matplotlab + +Author: Caner Candan +Date: Mon Nov 22 17:33:11 2010 +0100 + + removed omp_apply.h and added to apply.h, added dynamicity computation + +Author: Caner Candan +Date: Mon Nov 22 14:47:55 2010 +0100 + + remove threshold parameter and move from static schedule to dynamic + +Author: Caner Candan +Date: Mon Nov 22 14:07:47 2010 +0100 + + added efficienty computation + +Author: Caner Candan +Date: Sat Nov 20 01:57:30 2010 +0100 + + added stepping parameters + +Merge: dab81d1 6625cd2 +Author: Caner Candan +Date: Sat Nov 20 01:08:22 2010 +0100 + + uptodate + +Author: Caner Candan +Date: Sat Nov 20 01:01:45 2010 +0100 + + openmp testing up-to-date + +Author: nojhan +Date: Fri Nov 19 21:08:18 2010 +0100 + + test binary for dual fitness + +Merge: e8a083f 651ba9f +Author: nojhan +Date: Fri Nov 19 21:07:05 2010 +0100 + + Merge branch 'master' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev + + Conflicts: + eo/test/CMakeLists.txt + +Author: nojhan +Date: Fri Nov 19 21:03:07 2010 +0100 + + add t-eoDualFitness to CMake + +Author: nojhan +Date: Fri Nov 19 21:02:35 2010 +0100 + + added a method to get the value of a dual fitness + +Author: Caner Candan +Date: Fri Nov 19 11:54:45 2010 +0100 + + new pkg-config file + +Author: Caner Candan +Date: Fri Nov 19 11:50:51 2010 +0100 + + changed pkg-config file creation process + +Author: Caner Candan +Date: Fri Nov 19 11:48:42 2010 +0100 + + openmp test updated + +Author: Caner Candan +Date: Thu Nov 18 10:49:24 2010 +0100 + + added some new scripts to specialize building and a build script for visual studio 2008 + +Author: Caner Candan +Date: Thu Nov 18 10:47:29 2010 +0100 + + forgot to add t-eoParser in test/CMakeLists.txt + +Author: Caner Candan +Date: Wed Nov 17 17:27:55 2010 +0100 + + added a apply.h variant for parallel execution + +Author: Caner Candan +Date: Wed Nov 17 14:43:18 2010 +0100 + + functor operator applying to population in parallel + +Merge: 979a186 8ecef39 +Author: Caner Candan +Date: Wed Nov 17 11:54:07 2010 +0100 + + Merge branch 'master' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev + +Author: Caner Candan +Date: Wed Nov 17 11:47:49 2010 +0100 + + unit test for eoParser added + +Author: Caner Candan +Date: Wed Nov 17 11:41:43 2010 +0100 + + fixed unistd.h portability issue + +Author: Johann Dreo +Date: Mon Nov 15 09:30:37 2010 +0100 + + eoDualStatSwitch, a wrapper for computing stats on feasible and unfeasible individuals, separately + +Merge: fb8a8d7 04f12b7 +Author: Johann Dreo +Date: Mon Nov 15 09:14:00 2010 +0100 + + Merge branch 'master' of ssh://eodev/gitroot/eodev/eodev + +Author: Johann Dreo +Date: Mon Nov 15 09:13:39 2010 +0100 + + verify that pop is not empty before attempting to compute the IQR + +Author: Johann Dreo +Date: Mon Nov 15 09:12:10 2010 +0100 + + @todo: add an init method for continuators? + +Author: nojhan +Date: Sun Nov 14 15:24:35 2010 +0100 + + supress some doxygen warnings about \classes + +Author: nojhan +Date: Sun Nov 14 15:11:46 2010 +0100 + + eoInterquartileRangeStat example link to t-eoIQRStat + +Author: nojhan +Date: Sun Nov 14 15:07:50 2010 +0100 + + a test binary for eoInterquartileRangeStat + +Author: Caner Candan +Date: Wed Nov 10 11:18:57 2010 +0100 + + there was a warning from compiler related to a comment syntax in eoInvalidateOps.h + +Author: Johann Dreo +Date: Tue Nov 9 11:44:28 2010 +0100 + + fix most of the doxygen warnings + +Author: Johann Dreo +Date: Mon Nov 8 22:58:37 2010 +0100 + + default log output to debug for the ostream monitor ; better documentation + +Author: Johann Dreo +Date: Mon Nov 8 18:29:25 2010 +0100 + + new eoAerageSizeStat class + +Author: Johann Dreo +Date: Mon Nov 8 18:27:58 2010 +0100 + + check for self assignement in copy operator of eoDualFitness + +Author: Johann Dreo +Date: Mon Nov 8 18:27:19 2010 +0100 + + deactivate gpsymreg that uses the now unsuported multi-objective feature + +Author: Johann Dreo +Date: Sun Nov 7 23:43:58 2010 +0100 + + fix some doxygen warnings + +Author: Johann Dreo +Date: Sun Nov 7 23:16:45 2010 +0100 + + remove multi-objective stuff, deprecated by ParadisEO-PEO + +Author: Johann Dreo +Date: Sun Nov 7 23:12:28 2010 +0100 + + add tests interfaces as examples in the doc ; remove unused test binaries ; some code formating + +Author: Johann Dreo +Date: Sun Nov 7 23:09:35 2010 +0100 + + remove unused test binaries, some code formating + +Author: Johann Dreo +Date: Sun Nov 7 11:19:33 2010 +0100 + + in the doc's main page: brief section first with a link to the modules list + +Author: Johann Dreo +Date: Sat Nov 6 17:31:39 2010 +0100 + + do not documentify: test, tutorial, contrib and app, that are not part of the framework by itself + +Author: Johann Dreo +Date: Sat Nov 6 17:24:00 2010 +0100 + + removing obsolete win directory, we now se CMake that can generate VC++ project files by itself + +Author: nojhan +Date: Sat Nov 6 09:19:17 2010 +0100 + + small fixes in the doc + +Author: Johann Dreo +Date: Fri Nov 5 22:46:15 2010 +0100 + + and finally... still more grouping in documentation. + +Author: Johann Dreo +Date: Fri Nov 5 15:59:35 2010 +0100 + + grouping classes in documentation + +Author: Johann Dreo +Date: Fri Nov 5 14:28:28 2010 +0100 + + name of variables in english ; use the eo::log instead of cerr ; doc grouping + +Author: Johann Dreo +Date: Fri Nov 5 11:26:04 2010 +0100 + + grouping classes in documentation + +Author: Johann Dreo +Date: Tue Nov 2 17:23:27 2010 +0100 + + readable size for the evolutionry algorithm diagram + +Author: Johann Dreo +Date: Tue Nov 2 16:57:13 2010 +0100 + + evolutionary algorithm diagram with lego blocks, fancier + +Author: Johann Dreo +Date: Mon Nov 1 23:08:58 2010 +0100 + + more doc groups, cleaner modules hierarchy + +Author: Johann Dreo +Date: Mon Nov 1 22:09:40 2010 +0100 + + replace TODO comments by @ŧodo doxygen command + +Author: Johann Dreo +Date: Mon Nov 1 22:08:37 2010 +0100 + + more explanations in doc main page, remove HTML markup, remove deprecated link pages + +Author: Johann Dreo +Date: Mon Nov 1 18:20:56 2010 +0100 + + Create more doxygen groups for base classes, clean some doc + +Author: Johann Dreo +Date: Mon Nov 1 18:19:37 2010 +0100 + + delete the obsolete directory (still versionned in the repository if necessary) + +Author: Johann Dreo +Date: Mon Nov 1 15:34:27 2010 +0100 + + grouping algorithms in a module of the doc + +Author: Johann Dreo +Date: Mon Nov 1 13:37:24 2010 +0100 + + added Johann and Caner as authors on the web page + +Author: Johann Dreo +Date: Mon Nov 1 13:32:37 2010 +0100 + + more shortcut links on the webpage, toward the chat and the trac + +Author: Johann Dreo +Date: Sun Oct 31 23:01:16 2010 +0100 + + fix #10: removed MOO binaries + +Author: Johann Dreo +Date: Sun Oct 31 22:57:05 2010 +0100 + + fix #10: removed the moo/ directory and eoMO* classes, deprecated by the Paradiseo-MOEO project + +Author: Johann Dreo +Date: Sun Oct 31 21:57:06 2010 +0100 + + indicate cudacc branch in the changelog + +Merge: fc21827 66b4dfd +Author: Johann Dreo +Date: Sun Oct 31 21:50:15 2010 +0100 + + Merge branch 'cudacc' + +Author: Johann Dreo +Date: Sun Oct 31 21:36:53 2010 +0100 + + remove default values for verbose parameters, so as to make deprecated wrappers unused by default + +Author: Johann Dreo +Date: Sun Oct 31 21:19:34 2010 +0100 + + alternate function prototypes without verbose parameter + +Author: Johann Dreo +Date: Sun Oct 31 07:47:12 2010 +0100 + + changelog summary for the next 1.1 release + +Author: Johann Dreo +Date: Sat Oct 30 23:30:40 2010 +0200 + + fix #13: remove the use of the verbose members, replaced by the eo::log system ; functions prototypes keep their verbose parameters, but display a warning until next version + +Author: Johann Dreo +Date: Tue Oct 26 13:48:47 2010 +0200 + + file not at the right place + +Author: Johann Dreo +Date: Tue Oct 26 13:37:15 2010 +0200 + + replace the changelog with the (cleaned) git log, more up-to-date + +Author: Johann Dreo +Date: Tue Oct 26 13:35:08 2010 +0200 + + renamed in CHANGELOG + +Author: Johann Dreo +Date: Tue Oct 26 13:34:19 2010 +0200 + + warning: not up-to-date + +Author: Johann Dreo +Date: Tue Oct 26 13:32:55 2010 +0200 + + added Johann and Caner as authors + +Author: Johann Dreo +Date: Tue Oct 26 13:32:43 2010 +0200 + + replace the changelog with the (cleaned) git log, more up-to-date + Author: Johann Dreo Date: Tue Oct 26 10:51:48 2010 +0200 @@ -18,11 +1041,31 @@ Date: Fri Oct 22 10:07:09 2010 +0200 Arithmetic operators (note: priority to unfeasibility) +Author: Caner Candan +Date: Tue Oct 12 10:09:56 2010 +0200 + + I have fixed some bugs and added some tests for doDistrib classes + Author: Johann Dreo Date: Wed Sep 29 22:52:30 2010 +0200 using eo::log instead of std::cout +Author: Caner Candan +Date: Tue Sep 28 10:38:38 2010 +0200 + + there was an issue on doBounderNo class tied to the default values of the ctor of mother class doBounder: fixed + +Author: Caner Candan +Date: Wed Sep 22 19:25:37 2010 +0200 + + * eda n eda_sa: bug fixed, while we were using -h the result folder was removed + +Author: Caner Candan +Date: Wed Sep 22 14:38:15 2010 +0200 + + + eda algo: same algo than eda-sa without sa, + plotting scripts and problem functions moved to application/common + Author: Johann Dreo Date: Tue Sep 21 17:53:48 2010 +0200 @@ -33,6 +1076,21 @@ Date: Tue Sep 21 17:52:59 2010 +0200 typo variable name +Author: Caner Candan +Date: Tue Sep 21 15:12:19 2010 +0200 + + + boxplot.py: script to generate graphic with boxplot to illustrate distances between theorical and visual means for each population value + +Author: Caner Candan +Date: Tue Sep 21 15:08:38 2010 +0200 + + + t-mean-distance: program to generate distance value between the theorical and visual means + +Author: Johann Dreo +Date: Mon Sep 20 13:35:51 2010 +0200 + + typofix declaration types in macro + Author: Johann Dreo Date: Mon Sep 20 11:32:55 2010 +0200 @@ -94,11 +1152,115 @@ Date: Wed Sep 15 22:28:29 2010 +0200 doc comments +Merge: 26ac5ca 86b7538 +Author: Caner Candan +Date: Tue Sep 14 14:18:14 2010 +0200 + + Merge branch 'master' of 188.165.44.48:do + +Author: Caner Candan +Date: Tue Sep 14 13:19:43 2010 +0200 + + bugfixed from ublas::vector assignement ctor for old version of boost + +Author: Caner Candan +Date: Mon Sep 13 06:17:44 2010 +0200 + + - screenshots + +Merge: 0f4e43c 6a613bc +Author: Caner Candan +Date: Sat Sep 11 00:21:02 2010 +0200 + + Merge branch 'mo-1.3' of candan.fr:do into mo-1.3 + +Author: Caner Candan +Date: Fri Sep 10 23:21:31 2010 +0200 + + t-doEstimatorNormalMulti: display means and distance + +Author: Caner Candan +Date: Fri Sep 10 17:04:02 2010 +0200 + + * bugfixed on test_cov_parameters + +Author: Caner Candan +Date: Fri Sep 10 15:52:54 2010 +0200 + + replaced generated prefix name in result folder + +Author: Caner Candan +Date: Fri Sep 10 15:48:16 2010 +0200 + + + test_cov_parameters.py: script to execute the estimator testor (t-EstimatorNormalMulti) in using all combinaison parameters values for 2-D cov-matrix + +Author: Caner Candan +Date: Fri Sep 10 01:09:16 2010 +0200 + + + test/t-doEstimatorNormalMulti + Author: nojhan Date: Thu Sep 9 22:37:50 2010 +0200 update related softwares: + EASEA, GUIDE +Merge: 15ae721 86b0828 +Author: Caner Candan +Date: Thu Sep 9 13:55:59 2010 +0200 + + Merge branch 'mo-1.3' of git:do into mo-1.3 + +Author: Caner Candan +Date: Thu Sep 9 13:55:18 2010 +0200 + + * added some comments + +Author: Caner Candan +Date: Thu Sep 9 11:53:14 2010 +0200 + + + new screenshot with parameters -P=10000 -d=10 + +Author: Caner Candan +Date: Thu Sep 9 11:24:35 2010 +0200 + + * some updates on gplot.py to have a better display + screenshots from gnuplot + +Author: Caner Candan +Date: Thu Sep 9 08:03:01 2010 +0200 + + * README + +Author: Caner Candan +Date: Thu Sep 9 07:59:50 2010 +0200 + + buxfixed on CMakeLists.txt regarding copying failures + +Author: Caner Candan +Date: Thu Sep 9 07:58:05 2010 +0200 + + renamed scripts filenames + +Author: Caner Candan +Date: Thu Sep 9 07:56:15 2010 +0200 + + * added some features in plot.py plotting script + +Merge: 2e43f47 56680e8 +Author: Johann Dreo +Date: Wed Sep 8 12:15:08 2010 +0200 + + Merge branch 'mo-1.3' of git:do into mo-1.3 + +Author: Johann Dreo +Date: Wed Sep 8 12:14:15 2010 +0200 + + bounder on uniform distribution that can handle different bounds on several dimensions + +Author: Caner CANDAN +Date: Tue Sep 7 15:36:16 2010 +0200 + + * fixed bad using of method moNeighbor< EOT >::init( EOT& ) + Author: Johann Dreo Date: Mon Sep 6 12:05:13 2010 +0200 @@ -109,6 +1271,16 @@ Date: Mon Sep 6 11:20:00 2010 +0200 use eo::log instead of cout +Author: Johann Dreo +Date: Mon Sep 6 10:43:34 2010 +0200 + + no more dummy bounder + +Author: Johann Dreo +Date: Mon Sep 6 10:43:07 2010 +0200 + + constructors for passing the bounder to super class + Author: Johann Dreo Date: Mon Sep 6 00:04:37 2010 +0200 @@ -124,6 +1296,21 @@ Date: Sun Sep 5 23:42:58 2010 +0200 use eo::log instead of cout +Author: Johann Dreo +Date: Sat Sep 4 23:07:37 2010 +0200 + + some MO types replacement + +Author: Johann Dreo +Date: Fri Sep 3 18:32:27 2010 +0200 + + switch to new MO 1.3 classes and interface + +Author: Johann Dreo +Date: Fri Sep 3 15:55:28 2010 +0200 + + Patch from Karima.Boufaras@inria.fr: compilation wth CUDACC + Author: nojhan Date: Fri Sep 3 09:19:23 2010 +0200 @@ -155,11 +1342,27 @@ Date: Wed Sep 1 12:01:42 2010 +0200 eo::log: added the parameter -o in order to define a log file + removed some warning messages at compile time +Merge: 25bb766 13b9b62 +Author: Caner Candan +Date: Wed Sep 1 10:33:42 2010 +0200 + + Merge branch 'master' of ssh://localhost:8007/do + +Author: Caner Candan +Date: Tue Aug 31 19:29:05 2010 +0200 + + added temporary population sorting + Author: Caner Candan Date: Tue Aug 31 19:26:51 2010 +0200 * added some useful comments in eoLogger class +Author: Caner Candan +Date: Tue Aug 31 17:16:48 2010 +0200 + + * main.cpp: removed useless comments * src/do: added some lines to make detectable language file * doEDASA.h: added some comments + Author: Caner Candan Date: Tue Aug 31 16:39:21 2010 +0200 @@ -266,11 +1469,72 @@ Date: Mon Aug 30 22:42:42 2010 +0200 no ; at the end of the line +Author: Caner Candan +Date: Mon Aug 30 16:20:55 2010 +0200 + + fixed a bug with using of replacor, it didnt reduce the fitness + Author: nojhan Date: Sat Aug 28 12:30:37 2010 +0200 openhatch button, supposed to facilitate the involvement of new contributors +Merge: 74b23dd 799a8f0 +Author: Caner Candan +Date: Thu Aug 26 19:54:05 2010 +0200 + + Merge branch 'master' of candan.fr:do + +Author: Caner Candan +Date: Thu Aug 26 19:31:30 2010 +0200 + + ... + +Author: Caner Candan +Date: Wed Aug 25 19:15:32 2010 +0200 + + * removed rho parameter and replaced it by popsize + +Author: Caner Candan +Date: Tue Aug 24 18:40:49 2010 +0200 + + + script to plot on ggobi + +Author: Caner Candan +Date: Tue Aug 24 11:23:55 2010 +0200 + + * LICENSE + +Author: Caner Candan +Date: Tue Aug 24 11:22:06 2010 +0200 + + * fixed remove command issue + +Author: Caner Candan +Date: Tue Aug 24 11:19:31 2010 +0200 + + * pkg-config updated + cmake file + +Author: Caner Candan +Date: Tue Aug 24 10:26:36 2010 +0200 + + + lib utils + +Author: Caner Candan +Date: Mon Aug 23 18:03:44 2010 +0200 + + + multiplot with gnuplot + +Author: Caner Candan +Date: Mon Aug 23 16:14:02 2010 +0200 + + a C header include missed + +Author: Caner Candan +Date: Mon Aug 23 15:56:58 2010 +0200 + + + plot populations by generation - removed dump from doEDASA + Author: nojhan Date: Thu Aug 19 22:04:01 2010 +0200 @@ -286,6 +1550,31 @@ Date: Thu Aug 19 20:38:19 2010 +0200 bugfix #2054922: using base_const_iterator::node; +Author: Caner Candan +Date: Wed Aug 18 19:13:38 2010 +0200 + + added a FIXME + +Author: Caner Candan +Date: Wed Aug 18 18:39:58 2010 +0200 + + * cma-sa name has been replace by eda-sa in the project + +Author: Caner Candan +Date: Wed Aug 18 18:24:16 2010 +0200 + + - useless comments and files removed + +Author: Caner Candan +Date: Wed Aug 18 18:23:01 2010 +0200 + + - useless comments and files removed + +Author: Caner Candan +Date: Wed Aug 18 18:22:28 2010 +0200 + + - useless comments and files removed + Author: Caner CANDAN Date: Wed Aug 18 17:30:11 2010 +0200 @@ -301,12 +1590,22 @@ Date: Wed Aug 18 17:06:16 2010 +0200 + cpack configuration in order to generate packaging files, to make it easier use the script package_deb and package_rpm +Author: Caner Candan +Date: Wed Aug 18 13:37:17 2010 +0200 + + - some useless comments + authors in files header + Merge: 0a37f66 6ec3fc5 Author: Caner CANDAN Date: Wed Aug 18 12:16:13 2010 +0200 Merge branch 'master' of ssh://localhost:9001/gitroot/eodev/eodev +Author: Caner Candan +Date: Tue Aug 17 17:44:53 2010 +0200 + + bug fixed + Author: Johann Dreo Date: Tue Aug 17 15:11:18 2010 +0200 @@ -332,17 +1631,76 @@ Date: Tue Aug 17 14:56:33 2010 +0200 use eo::log ; warning when returns 0 +Author: Caner Candan +Date: Mon Aug 16 15:38:39 2010 +0200 + + issue to fix + +Author: Caner Candan +Date: Mon Aug 16 11:45:43 2010 +0200 + + added L(i,i) = sqrt( abs(V(i,i) - sum) ) but the issue still exists + +Author: Caner Candan +Date: Mon Aug 16 11:30:06 2010 +0200 + + * added the eo features Continue/CheckOut/Stat to DO in order to dump distribution parameters and to have compatibility with eoMonitor/eoUpdater classes + +Author: Caner Candan +Date: Mon Aug 16 07:52:30 2010 +0200 + + +Author: Caner Candan +Date: Fri Aug 6 10:24:45 2010 +0200 + + added doNormalMono + +Author: Caner Candan +Date: Fri Aug 6 10:19:50 2010 +0200 + + replace doNormal by doNormalMulti + +Merge: f66efcb 36ec42d +Author: Caner Candan +Date: Fri Aug 6 09:50:58 2010 +0200 + + merge + Merge: 9f4c073 68a03aa Author: Caner CANDAN Date: Wed Aug 4 14:10:57 2010 +0200 Merge branch 'yaml_load_and_save' of ssh://localhost:9001/gitroot/eodev/eodev +Author: Caner Candan +Date: Wed Aug 4 14:05:42 2010 +0200 + + * changed some comments sentences + Author: Caner CANDAN Date: Wed Aug 4 13:47:51 2010 +0200 + feature eoSIGContinue: Continuator can catch user signals + feature eoLogger: flexible logging system for eo +Author: Caner Candan +Date: Wed Aug 4 13:05:28 2010 +0200 + + +Author: Caner Candan +Date: Tue Aug 3 18:54:41 2010 +0200 + + * cholesky + +Author: Caner Candan +Date: Tue Aug 3 10:35:25 2010 +0200 + + - doDistribParams + +Author: Caner Candan +Date: Tue Aug 3 10:26:15 2010 +0200 + + + some useful files added + Author: Johann Dreo Date: Mon Aug 2 17:07:32 2010 +0200 @@ -393,6 +1751,86 @@ Date: Thu Jul 29 14:28:05 2010 +0200 no more CVSROOT +Author: Caner Candan +Date: Thu Jul 29 11:22:10 2010 +0200 + + * doc installable + +Author: Caner Candan +Date: Fri Jul 23 13:34:42 2010 +0200 + + + added some useful files + +Author: Caner Candan +Date: Fri Jul 23 13:24:09 2010 +0200 + + + TODO + doStats.cpp + +Author: Caner Candan +Date: Fri Jul 23 13:18:30 2010 +0200 + + * some cleaner updates + +Author: Caner Candan +Date: Tue Jul 13 13:20:07 2010 +0200 + + * doStats * doEstimatorNormal: replaced use of Variance by CoMatrix + +Author: Caner Candan +Date: Tue Jul 6 15:43:15 2010 +0200 + + ... + +Author: Caner Candan +Date: Tue Jul 6 11:25:02 2010 +0200 + + + do.pc + +Author: Caner Candan +Date: Tue Jul 6 10:15:47 2010 +0200 + + * fixed some packaging issues + +Author: Caner Candan +Date: Tue Jul 6 01:31:44 2010 +0200 + + cpack works + +Author: Caner Candan +Date: Tue Jul 6 01:27:14 2010 +0200 + + config cmake + +Author: Caner Candan +Date: Mon Jul 5 20:39:41 2010 +0200 + + + test + +Author: Caner Candan +Date: Mon Jul 5 20:31:30 2010 +0200 + + ... + +Author: Caner Candan +Date: Mon Jul 5 19:42:34 2010 +0200 + + + packaging + cmake files + +Author: Caner Candan +Date: Mon Jul 5 19:06:34 2010 +0200 + + + cma_sa application + +Author: Caner Candan +Date: Mon Jul 5 19:04:35 2010 +0200 + + + do files + +Author: Caner Candan +Date: Mon Jul 5 18:54:55 2010 +0200 + + ... + Author: paradiseo Date: Tue Jun 22 09:31:58 2010 +0000 @@ -1274,11 +2712,11 @@ Date: Thu Feb 22 08:27:32 2007 +0000 * mutation.tmpl, quadCrossover.tmpl, stat.tmpl: Initialize formerly uninitialized variables. - + * README.tmpl: Hint to regular Templates/README for details. - + * README: Add documentation for adding new source-files. - + * Makefile.am.src-tmpl (noinst_HEADERS): Add (MyStruct_SOURCES): Move header files from here to the new noinst_HEADERS variable. @@ -1315,7 +2753,7 @@ Date: Sun Jan 14 18:56:31 2007 +0000 for automake finding the scripts of eo itself if we run it in a embedded subdirectory. (COPYING, INSTALL): create. - + * README: State more explicitly what a "complete installation" means. Give build-instructions for moved directories. @@ -1359,9 +2797,9 @@ Author: kuepper Date: Mon Dec 18 11:17:55 2006 +0000 * TODO.html, README.html: Remove these old files. - + * AUTHORS, COPYING, ForRelease, NEWS, ToDo: Update for release. - + * eo.cfg (PROJECT_NUMBER): Bump version to 1.0 Author: kuepper @@ -1373,7 +2811,7 @@ Author: kuepper Date: Sun Dec 17 22:59:53 2006 +0000 * README: Better links to Templates/ - + * configure.in: Bump version to 1.0-beta2. Author: kuepper @@ -1402,11 +2840,11 @@ Date: Sat Dec 16 21:55:03 2006 +0000 * EO.tpl, MyStructEA.cpp, MyStructSEA.cpp, make_MyStruct.cpp: Use correct names for includes. - + * README.manual: This is a copy of the old README. - + * README: Describe the new way and setup of creating a new EO project. - + * createEOproject.sh, Makefile.am.src-tmpl, Makefile.am.top-tmpl: * configure.ac.tmpl: New files to create a standalone EO project from templates. @@ -1435,7 +2873,7 @@ Author: kuepper Date: Mon Dec 4 22:27:41 2006 +0000 * Makefile.am: Add t-eoRNG - + * t-eoRNG.cpp: Start test for random number generator. Author: kuepper @@ -1472,11 +2910,11 @@ Author: kuepper Date: Sun Dec 3 10:41:54 2006 +0000 * mainpage.html: update, add link to Niko Hansen's comparison - + * README: Add more specific note about tutorial. - + * configure.in: Bump version to 1.0-beta1 - + * tutorial/Makefile.am: Add all necessary files, including html and Templates to distribution. @@ -1517,13 +2955,13 @@ Author: kuepper Date: Sat Dec 2 10:18:57 2006 +0000 * eoTimedMonitor.h (eoTimedMonitor::seconds): Make unsigned. - + * eoRNG.cpp, eoRNG.h (K, M, N): Declare static and initialize in cpp. - + * t-eoGenOp.cpp (init): Do not add std::ends to end of string, as this results in escape-codes (^@) to be printed at runtime and is not necessary anyway. - + * test/t-eoSymreg.cpp (SymregNode::operator()): Initialize r1 and r2 to avoid compiler warnings. @@ -1531,7 +2969,7 @@ Author: kuepper Date: Sat Dec 2 09:39:13 2006 +0000 * eoRNG.h: Cleanup docs and document /all/ members. - + * eoRNG.cpp, eoRNG.h (K, M, N): Declare static and initialize in cpp. Author: kuepper @@ -1548,9 +2986,9 @@ Author: kuepper Date: Fri Dec 1 20:08:51 2006 +0000 * Makefile.am: Update for release-distribution. - + * Makefile.am: Add missing CMA header for distribution. - + * Makefile.am: Add missing header for distribution. Author: kuepper @@ -1603,7 +3041,7 @@ Author: kuepper Date: Thu Nov 16 12:52:46 2006 +0000 * configure.in (AC_DEBUG): add test - + * acinclude.m4 (AC_DEBUG): Define debug-feature and set DEBUG, NODEBUG, or NDEBUG according to its value. @@ -1613,10 +3051,10 @@ Date: Thu Nov 16 12:35:46 2006 +0000 * make_genotype_real.h (eoEsChromInit): Rewrite vecSigmaInit-handling: If sigmaInit is relative (%), do not read vecSigmaInit. Otherwise always use vecSigmaInit with default all values of sigmaInit. - + * eoParser.h (eoParser::getORcreateParam): Make this a real if-then-else clause around ptParam (found or not). - + * eoParam.h (eoValueParam::setValue): Document. (eoValueParam >::setValue): Allow delimiters ',' and ';'. A plain ' ' does not work, as it is not correctly read by @@ -1973,9 +3411,9 @@ Date: Sun Oct 2 21:42:08 2005 +0000 - add a user-option for gnuplot-support - separate gnuplot-code into declaration and implementation, so we can define at EO-build-time whether to use it or not. - + Adopt code and Makefiles to above changes. - + Some minor fixes. Author: kuepper @@ -2311,7 +3749,7 @@ Date: Thu Dec 23 15:29:07 2004 +0000 Adjust code to perform to C++ standard according to gcc-3.4 interpretation... (Have not compiled/checked/changed paradisEO.) - + That is, the current code compiles with gcc-3.4 and the checks (besides t-MGE1bit) all pass. @@ -2362,7 +3800,7 @@ Date: Fri Nov 5 08:57:34 2004 +0000 easily read as a parameter) - eoIntBound and all other integer-equivalent of the classes in eoRealBound.h Note that there is no equivalent to eoRealVectorBounds for vector of integers - + In file eo, I have added the 2 includes of eoRealBounds.h and eoIntBounds.h The first one was already there by chance, through eoUniformInit.h @@ -2569,13 +4007,13 @@ Author: kuepper Date: Fri Sep 17 16:53:31 2004 +0000 Updated build-prcess to be completely under automake control. - + For the tutorial the old Makefiles are saved as Makefile.simple in all the respective directories. - + Use generated config.h instead of command-line passing of preprocessor flags. - + Updated support files from current automake. Author: kuepper @@ -3300,7 +4738,7 @@ Date: Sun Jan 5 16:31:50 2003 +0000 Added pyeo. Some changes needed to be made for include files and the like in some files (and some bugs were fixed as well [Marc: eoOneToOneBreeder was a mess]) - + eoFunctor.h now contains static functor_category members, this shouldn't hurt anyone. Author: maartenkeijzer @@ -3398,7 +4836,7 @@ Date: Wed Sep 18 12:40:46 2002 +0000 A new readFrom & printOn function for EO.h Now it CAN handle VALID/INVALID fitnesses. - + The problems are over at last Author: cahon @@ -3592,7 +5030,7 @@ Date: Mon Jun 17 04:13:45 2002 +0000 Adding the truncation selectors. 2 versions: eoTruncatedSelectOne is an eoSelectOne, and - eoTruncatedSelectMany works like an eoSelectMany (but is NOT) + eoTruncatedSelectMany works like an eoSelectMany (but is NOT) Author: jeggermo Date: Mon Jun 10 14:10:35 2002 +0000 @@ -3609,7 +5047,7 @@ Date: Mon May 13 11:31:32 2002 +0000 EO::printOn has been changed so that the printOn function will always print a valid fitness value even if the fitness is invalid - + Jeroen Author: jeggermo @@ -3827,7 +5265,7 @@ Date: Mon Apr 15 12:56:35 2002 +0000 eoParseTree printOn and readFrom functions changed for compatibility with paradisEO - + The fitness is now printed in the same way as in eoBit Author: evomarc @@ -4138,9 +5576,9 @@ Date: Mon Feb 4 14:28:00 2002 +0000 the gpsymreg code has been slightly altered to allow compilation using the Intel C++ Compiler for Linux. - + Other compilers should not be affected. - + A slightly different makefile is needed Author: jeggermo @@ -4317,7 +5755,7 @@ Date: Tue Dec 4 21:15:16 2001 +0000 some template classes and functions which did not need to be templates have been changed to normal classes and functions with hard coded typed - + This might help with M$VC++ 6.0 compatibility Author: jeggermo @@ -4537,8 +5975,8 @@ Date: Sat Nov 10 09:02:17 2001 +0000 Small modifications here and there to be MSVC++ compatible Mainly, time.h -> ctime - definition of loop index out of loops when multiply used - no typename in declaration using template typename + definition of loop index out of loops when multiply used + no typename in declaration using template typename Author: evomarc Date: Sat Nov 10 06:59:02 2001 +0000 @@ -4628,15 +6066,15 @@ Date: Sat Nov 3 22:10:11 2001 +0000 the name of the eoGpDepthInitializer class (initializer for parse_tree's has been changed to - + eoParseTreeDepthInit but backward compatibility is maintained by using a #define statement: - + #define eoGpDepthInitializer eoParseTreeDepthInit - + The initializer for strongly typed GP has been changed to eoStParseTreeDepthInit - + the gpsymreg application has been changed to use the new name Author: jeggermo @@ -4839,7 +6277,7 @@ Author: jeggermo Date: Tue Jul 17 08:58:52 2001 +0000 small documentation change for eoParseTree.h. - + added a depth initializer for strongly typed genetic programming added subtree xover for strongly typed genetic programming added branch mutation for strongly typed genetic programming @@ -4862,7 +6300,7 @@ Date: Wed Jul 4 04:44:30 2001 +0000 Adding eoPopEvalFunc, that handles evaluation globally: it receives two populations, parents and offspring, and does whatever necessary. The subclass eoPopLoopEval does the simple loop on the offspring. - + eoEasyEA was subsequently modified to handle an eoPopEval passed in Ctor, but also to encapsulate an eoEvalFunc into an eoPopLoopEval tranparently. @@ -4874,7 +6312,7 @@ Date: Tue Jul 3 12:56:44 2001 +0000 Modified eoEaseyEA accordingly - you can either pass an eoEvalFunc, as before (it is then encapsulated into an eoPopLoopEval that does the good old loop on the offspring - or directly pass a full eoPopEvalFunc - + Small modification also in make_op_es -> keyword "none" is now recognized for one of the crossover of either object variables or stdev's @@ -4883,9 +6321,9 @@ Date: Mon Jul 2 13:31:04 2001 +0000 Changed the directory structure for gp now: eoParseTree <-- the eoParseTree class - eoParseTreeDepthInit <-- the eoParseTree depth initializer (eoGpDepthInitializer) - eoParseTreeOp <-- the operators (xover and mutation) - + eoParseTreeDepthInit <-- the eoParseTree depth initializer (eoGpDepthInitializer) + eoParseTreeOp <-- the operators (xover and mutation) + base documentation written for: * eoParseTree * eoGpDepthInitializer @@ -4895,9 +6333,9 @@ Date: Mon Jul 2 13:31:04 2001 +0000 * eoExpansionMutation * eoCollapseSubtreeMutation * eoHoistMutation - + I also created a group ParseTree which contains all classes related to eoParseTree - + eoGpMutate.h has been removed (merged with eoParseTree operators into eoParseTreeOp Author: jeggermo @@ -4978,16 +6416,16 @@ Author: jeggermo Date: Thu Jun 28 14:03:59 2001 +0000 new Mutation operators for eoParseTree in src/gp/eoGpMutate.h - + a symbolic regression example program added to the app-dir - + configure.in and Makefile(s).am changed Author: jeggermo Date: Thu Jun 28 13:55:14 2001 +0000 Additional mutation operators for eoParseTree - + * Point Mutation * Expansion Mutation * Collapse Subtree Mutation @@ -5195,7 +6633,7 @@ Date: Wed May 2 10:42:32 2001 +0000 src/es/eoEsGlobalXover.h and src/es/eoEsLocalXover.h for crossover src/es/make_XXX_es.h for user-input test/t-eoEsAll.cpp to test - + However, an old bug appeared: className was not const in eoGenOp (and derived classes) so I had to change that throughtout the hierarchy @@ -5212,7 +6650,7 @@ Date: Mon Apr 30 13:24:42 2001 +0000 Changed the interface of make_genotype - now templatized by the EOT and not the fitness - this is mandatory for ES genoptypes as it allows to choose the type of gentype at run-time (from existing types, of course!) - + Also moved make_help.cpp into utils dir (otherwise you'd had to maintain a copy into each representation dir!). @@ -5224,7 +6662,7 @@ Date: Mon Apr 30 13:01:07 2001 +0000 Changed the interface of make_genotype - now templatized by the EOT and not the fitness - this is mandatory for ES genoptypes as it allows to choose the type of gentype at run-time (from existing types, of course!) - + Also moved make_help.cpp into utils dir (otherwise you'd had to maintain a copy into each representation dir!). @@ -5427,7 +6865,7 @@ Date: Wed Apr 4 03:47:33 2001 +0000 Added the signal handling - see eoCtrlCContinue.h I've disabled it in case of MSC as I don't know if this works there ... - + Also added a couple of "virtual" in the ga dir Author: evomarc @@ -5455,7 +6893,7 @@ Date: Wed Mar 28 09:00:54 2001 +0000 FDCStat and FileSnapshot: better error messageing Scalar fitness: is now a vector of doubles exercise3.1 added gnuplot again - + Don't know about eoCombinedContinue Author: evomarc @@ -5646,7 +7084,7 @@ Author: maartenkeijzer Date: Mon Mar 12 16:00:58 2001 +0000 EO: added overloaded printing of fitness (for vectors and pairs) - + Various bugs and ommissions in eoPerf2Worth and eoSelectFromWorth Author: maartenkeijzer @@ -5658,12 +7096,12 @@ Author: maartenkeijzer Date: Sat Mar 10 14:02:23 2001 +0000 Changed the populator to be a) more efficient and b) more useable - + It is no longer derived from eoPop, it now gets a destination population. This saves a lot of copying. The semantics has changed a little as well. It is now an _infinite_ iterator. operator++ will *not* dispense new individuals, but will merely stay at the end. To get a new indy, use operator*() as before. - + eoEasyEA now checks the checkpoint *after* making a generation and clears the offspring eoGeneralBreeder is changed to reflect the changes in eoPopulator eoSequentialSelect now uses setup() rather than init() @@ -5717,7 +7155,7 @@ Date: Mon Feb 19 12:23:13 2001 +0000 To be able to use the primitive std::generate function, added a set of wrappers in eoSTLFunctor.h that have the copy semantics most STL functions expect (namely pass-by-value rather then pass-by-reference). - + Updated test/Makefile.am to also test t-eoRandom Author: evomarc @@ -5736,14 +7174,14 @@ Author: maartenkeijzer Date: Sat Feb 17 10:51:31 2001 +0000 eoVector is back (eoFixedLength and eoVariableLength are gone) - + Also: introducing eoRndGenerators.h for eoRndGenerator derived classes: - + eoNormalGenerator eoUniformGenerator eoBooleanGenerator eoNegExpGenerator - + Note the suffix that are added to aid in determining what these classes do Author: evomarc @@ -5829,13 +7267,13 @@ Date: Wed Feb 14 14:09:16 2001 +0000 Author: maartenkeijzer Date: Wed Feb 14 10:35:26 2001 +0000 - + Changed the signature of eoMon, eoBin and eoQuadOp to return a bool, without invalidating fitness. Added a set of invalidators to take over that job (see for instance eoSGA and eoSGATransform how this can transparantly used) - + Derived eoState from eoFunctorStore (for convenience, from a design perspective this may sound wrong) - + Added a wrap_op function that does the wrapping for you (see eoOpContainer how this made this functor exceedingly less hairy). Checked all the tests removed the eoGeneric*Op family (not needed anymore) and of course changed all the operators to reflect the change (and found a few that didn't @@ -5865,24 +7303,24 @@ Author: maartenkeijzer Date: Tue Feb 13 12:38:19 2001 +0000 fixed a bug: the parser now correctly parses parameters of the form - + -Pvalue - + This will now produce 'value'. The buggy parser would parse 'alue' here. I am truly and deeply ashamed to have created such an off-by-one error. - + Marc assumed this was wanted behaviour (so that it should read: -P=value) I must admit that this is a logical conclusion, though it was merely a side-effect of the error. To not force Marc to rewrite the tutorial and his way of working with EO, I decided to make a feature out of the bug, so that now the parser will parse: - + -Pvalue -P=value - + and of course the true and blue: - + -Parameter=value - + I will now go and check if I sent out some crappy papers caused by this bug (as I've been using eo!) Author: maartenkeijzer @@ -5894,14 +7332,14 @@ Author: maartenkeijzer Date: Mon Feb 12 13:58:51 2001 +0000 Ok, updated the Makefile.am again to use the - + make check - + Command I picked up in the automake documentation (RTFM, you know) - + Tagged a lot of header functions in the GnuPlot files with 'inline', so they can be used from more than one sourcefile. - + Ok, now the interesting news. Started a new library libga (not to be confused with Matthew's GaLib). Here I suggest we put a fairly complete and configurable genetic algorithm. Just to see how far we can stretch ourselves and also to have @@ -5920,7 +7358,7 @@ Author: maartenkeijzer Date: Sun Feb 11 16:25:03 2001 +0000 Removed small bug in reading outside a buffer in eoParser::readFrom - + This caused the parser to crash when a simple flag of the form program -f was given. @@ -6014,8 +7452,8 @@ Date: Fri Feb 9 05:09:26 2001 +0000 I also changed - the eoQuadratic into eoQuad (as dicussed with Maarten) - the eoBin into eoBit, with more appropriate names for the "binary" - operators (that can be unary!) as no one protested when I posted on - eodev list + operators (that can be unary!) as no one protested when I posted on + eodev list Author: evomarc Date: Wed Feb 7 05:15:18 2001 +0000 @@ -6039,7 +7477,7 @@ Date: Wed Feb 7 05:04:24 2001 +0000 Added selection methods eoBestSelect always return the best individual eoSequentialSelect a selectOne version of eoDetSelect (uses an index to - return next offspring from sorted pop) + return next offspring from sorted pop) Author: evomarc Date: Thu Feb 1 05:27:36 2001 +0000 @@ -6061,7 +7499,7 @@ Date: Wed Jan 31 18:38:39 2001 +0000 every generation) which is different from the continuous monitoring (same file/plot is angemented every generation). This lead to a number of modifications in many files in utils dir - + But now we can watch on-line - fitness spreadout - FDC plots @@ -6078,7 +7516,7 @@ Date: Mon Jan 29 10:25:44 2001 +0000 Added the truncate and the hasNoBoundAtAll methods in eoRealBounds. The former simply set values to the boundary values in case they are out The latter allows to short-cut all bound-checks when no need - + SOme day I will put this in utils, and have a eoRealBounds.cpp in the pre-compiled library @@ -6129,12 +7567,12 @@ Date: Sat Jan 27 07:43:58 2001 +0000 eo everything that is general to any representation es.h everything about real representation (in es dir) ga.h everything related to bitstring representation (in ga dir) - + To be continued by gp.h, and ... - + This has lead to some slight modifications in test file eobin and all tutorial examples files... - + I've also added in utils eoDistance, generic functor to compute distances, including also the generic Euclidian distance @@ -6145,9 +7583,9 @@ Date: Sat Jan 27 07:41:46 2001 +0000 eo everything that is general to any representation es.h everything about real representation (in es dir) ga.h everything related to bitstring representation (in ga dir) - + To be continued by gp.h, and ... - + This has lead to some slight modifications in test file eobin and all tutorial examples files... @@ -6405,7 +7843,7 @@ Date: Tue Jan 2 07:03:57 2001 +0000 permanent parameters (eoParser only holds references), and egcs did not allow to create them by reference, i.e. in the line eoValueParam & blablaParam(...); - + So now everything is done in the main_function, and 3 lines are needed to create and read every paramter (sigh ...) @@ -6483,16 +7921,16 @@ Date: Tue Dec 19 18:41:19 2000 +0000 THe big eoReplacement update: The interface for eoReplacement is now eoPop&, eoPop& (i.e. no const) and the result must be in the first argument in the end. - + Hence it is possible to do SSGA and all intermediate replacmeent procedures - + The classes derived from eoMergeReduce.h are now in a separate file The SSGA-like replcaement procedures are in eoReduceMerge.h A more general replacement can be found in eoSurviveAndDie.h (it could be made a littel more general - still open for upgrades). - + Also some accessors have been added to the eoPop (best and worse individuals) - + And include file eo has been updated Author: evomarc @@ -6630,16 +8068,16 @@ Author: evomarc Date: Mon Dec 4 06:58:43 2000 +0000 Added the lastCall construct: if the stopping condition becomes true in eoCheckPoint, - a method called lastCall is called for everything contained in that checkpoint - (stats, updaters and monitors). This can be extremely useful - - for stateSavers (see below) - - for monitoring things like rates of success of operators, where what you - are interested in is the final result only. + a method called lastCall is called for everything contained in that checkpoint + (stats, updaters and monitors). This can be extremely useful + - for stateSavers (see below) + - for monitoring things like rates of success of operators, where what you + are interested in is the final result only. Added of course a virtual method lastCall that does nothing by default in classes - eoBaseStat, eoBaseSortedStat, eoUpdater and eoMonitor + eoBaseStat, eoBaseSortedStat, eoUpdater and eoMonitor Added a boolean to control the save of the state in method eoCountedStateSaver::lastCall - so you can ask that the state is saved at final population, whatever happens. - I also added the corresponding constructor to take this into account. + so you can ask that the state is saved at final population, whatever happens. + I also added the corresponding constructor to take this into account. Author: evomarc Date: Mon Dec 4 05:55:59 2000 +0000 @@ -6822,8 +8260,8 @@ Author: evomarc Date: Tue Nov 28 06:46:37 2000 +0000 Modified the contructor: the default value for the delimiter is now " " - and I added a boolean argument to indicate whether or not we want to - overwrite an existing file with same name (default is overwrite). + and I added a boolean argument to indicate whether or not we want to + overwrite an existing file with same name (default is overwrite). Added the getFileName accessor. Author: evomarc @@ -7085,7 +8523,7 @@ Author: maartenkeijzer Date: Fri Oct 6 10:41:38 2000 +0000 Added an eoSortedStatBase for more efficient statistic calculations - + updated a few makefiles to include the html and latex docs with the distribution. @@ -7844,12 +9282,12 @@ Author: mac Date: Mon Mar 6 16:05:47 2000 +0000 Fixed bug in eoGOpSelector (missing break!) - + eoOp.h: binOp's second arg is const once more - + all dsp and dsw files were touched by msvc, but did add some stuff (which will be added to eo later) - + Hope this all works Author: mac @@ -7879,7 +9317,7 @@ Author: marc Date: Tue Feb 29 05:14:40 2000 +0000 wherease the command "cvs ci" is OK. - + Here we go: - added the virtual destructors of all classes, to suppress g++ annoying warnings when using -Wall option @@ -7930,7 +9368,7 @@ Date: Sat Feb 19 16:30:42 2000 +0000 Moved the static eoRNG rng to an extern eoRNG This external object is now defined in eoPersistent.cpp - + This should change... Author: mac diff --git a/eo/CMakeLists.txt b/eo/CMakeLists.txt index 35b98d16..52840cf6 100644 --- a/eo/CMakeLists.txt +++ b/eo/CMakeLists.txt @@ -14,12 +14,11 @@ INCLUDE(eo-conf.cmake OPTIONAL) # set the project name and other variables PROJECT(EO) -SET(PROJECT_VERSION_MAJOR 1) -SET(PROJECT_VERSION_MINOR 1) -SET(PROJECT_VERSION_PATCH 1) +#SET(PROJECT_VERSION_MAJOR 1) +#SET(PROJECT_VERSION_MINOR 1) +#SET(PROJECT_VERSION_PATCH 1) SET(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}" CACHE STRING "Package version" FORCE) -#SET(VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" CACHE STRING "Global version" FORCE) -SET(VERSION "1.1.1-edge" CACHE STRING "Global version" FORCE) +SET(VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}${PROJECT_VERSION_MISC}" CACHE STRING "Global version" FORCE) SET(GLOBAL_VERSION "${VERSION}") SET(PACKAGE_BUGREPORT "eodev-help@sourceforge.net" CACHE STRING "Package bug report" FORCE) @@ -58,7 +57,9 @@ INCLUDE(FindGnuplot) INCLUDE(CheckLibraryExists) -INCLUDE(ConfigureChecks.cmake) +IF(UNIX) + INCLUDE(ConfigureChecks.cmake) +ENDIF(UNIX) INCLUDE(Dart OPTIONNAL) diff --git a/eo/ConfigureChecks.cmake b/eo/ConfigureChecks.cmake index ee687fdf..5fabc9c3 100644 --- a/eo/ConfigureChecks.cmake +++ b/eo/ConfigureChecks.cmake @@ -1,22 +1,22 @@ # NOTE: only add something here if it is really needed by EO -include(CheckIncludeFile) -include(CheckIncludeFiles) -include(CheckSymbolExists) -include(CheckFunctionExists) -include(CheckLibraryExists) +INCLUDE(CheckIncludeFile) +INCLUDE(CheckIncludeFiles) +INCLUDE(CheckSymbolExists) +INCLUDE(CheckFunctionExists) +INCLUDE(CheckLibraryExists) -check_library_exists(m cos "cos in libm" HAVE_LIBM) +CHECK_LIBRARY_EXISTS(m cos "/usr/lib" HAVE_LIBM) -check_include_files(cmath.h "cmath.h" HAVE_CMATH_H) -check_include_files(stdio.h "stdio.h" HAVE_STDIO_H) -check_include_files(stdlib.h "stdlib.h" HAVE_STDLIB_H) -check_include_files(string.h "string.h" HAVE_STRING_H) -check_include_files(strings.h "strings.h" HAVE_STRINGS_H) -check_include_files(malloc.h "malloc.h" HAVE_MALLOC_H) -check_include_files(limits.h "limits.h" HAVE_LIMITS_H) -check_include_files(unistd.h "unistd.h" HAVE_UNISTD_H) -check_include_files(stdint.h "stdint.h" HAVE_STDINT_H) +CHECK_INCLUDE_FILES(math.h "math.h" HAVE_MATH_H) +CHECK_INCLUDE_FILES(stdio.h "stdio.h" HAVE_STDIO_H) +CHECK_INCLUDE_FILES(stdlib.h "stdlib.h" HAVE_STDLIB_H) +CHECK_INCLUDE_FILES(string.h "string.h" HAVE_STRING_H) +CHECK_INCLUDE_FILES(strings.h "strings.h" HAVE_STRINGS_H) +CHECK_INCLUDE_FILES(malloc.h "malloc.h" HAVE_MALLOC_H) +CHECK_INCLUDE_FILES(limits.h "limits.h" HAVE_LIMITS_H) +CHECK_INCLUDE_FILES(unistd.h "unistd.h" HAVE_UNISTD_H) +CHECK_INCLUDE_FILES(stdint.h "stdint.h" HAVE_STDINT_H) # Use check_symbol_exists to check for symbols in a reliable @@ -26,4 +26,4 @@ check_include_files(stdint.h "stdint.h" HAVE_STDINT_H) # specific order. Refer to the man page for each symbol for which a # check is to be added to get the proper set of headers. Example : -#check_symbol_exists(asymbol "symbole.h" HAVE_SYMBOLE) +#check_symbol_exists(asymbol "symbole.h" HAVE_SYMBOLE) diff --git a/eo/ForRelease b/eo/ForRelease index bd09cf4f..621ee19c 100644 --- a/eo/ForRelease +++ b/eo/ForRelease @@ -1,19 +1,13 @@ -In order to create a new release from the current cvs sources perform the +In order to create a new release from the current repository, perform the following steps: -- Set version number in configure.in and doc/eo.cfg +- Create a branch named "eo_x.y.z" +- Set version number in eo-conf.cmake - Check/update NEWS file, set release date and version in NEWS. -- Run `make check && make dist` -- Test distribution (unpack, configure, make check) -- Tag released code in cvs, in order to allow a branch to be created at that - version if the necessity will arise later -- Put distribution files at SourceForge +- use the "archive_current.sh" script to create the source archive +- Build the packages +- Put source archive and packages files at SourceForge - Post news on SourceForge project-page - Send announcement to mailing lists -- Bump version number to next x.y.z-cvs in configure.in and doc/eo.cfg +- Bump version number to next "x.y.z-edge" in eo-conf.cmake -# Local Variables: -# coding: iso-8859-1 -# mode: text -# fill-column: 80 -# End: diff --git a/eo/INSTALL b/eo/INSTALL index 89a45625..25f56d4a 100644 --- a/eo/INSTALL +++ b/eo/INSTALL @@ -1,235 +1,86 @@ - ----------------------------------------- -| WARNING THOSE INSTRUCTIONA ARE OUTDATED | - ----------------------------------------- - -Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software -Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. Basic Installation ================== - These are generic installation instructions. +The simplest way to compile the libraries or the provided softwares is to run +one of the script beginnig with "build_". Each script permits to build different +parts of the framework, with different options. - First, you need to generate a configure script using autoconf. - To do this, run the shell script sh ./autogen.sh. +To compile EO you will need CMake and a compiler for your system. - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). +So far the available scripts for posix systems using g++ are the following: + * build_gcc_linux_release : the most usefull script, build the core libraries in release mode + * build_gcc_linux_debug : build the core libraries with debugging informations in the binaries + * build_gcc_linux_tutorial : build the core libraries and the tutorials + * build_gcc_linux_unittest : build the core libraries and the tests executables + * build_gcc_linux_stl_parallel : build the core libraries enabling STL parallel algorithms (like sorting) + * build_gcc_linux_pyeo : build the core libraries and the python module + * distclean : remove the "release/" and "debug/" directories where the build scripts put the binaries - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) +For Windows systems using Visual Studio: + * build_vs2008_release.bat + You may need to adapt the ID to your version of Visual Studio, edit + the "Visual Studio 9 2008" string accordingly. - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. +The libraries are in the "release/lib/" or "debug/lib/" directories. - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. Compilers and Options ===================== - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. +The build scripts are really simple, take a look at them to see how to use the +build system. - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: +Basically, the steps are: + 0. remove any old build directory that's on the way: + rm -rf build/ + 1. create a directory in which to put build files: + mkdir build/ + 2. go in this directory: + cd build/ + 3. call cmake with the options you want, using the "-D" option and passing the + EO directory as an argument, for example: + cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_CMAKE_TESTING =1 .. + 4. now type your favorite "make" command, like: + make -j # use several processors at once when possible + 5. enjoy: + ./debug/test/t-eofitness - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix +Some of the available options are: + * CMAKE_BUILD_TYPE : + * "Debug" : embed debugging informations in the binaries) or + * "Release" : no debugging info and some optimizations (the default) + * ENABLE_EO_TUTORIAL : build the tutorial ("no" by default) + * ENABLE_CMAKE_TESTING : build the tests executables ("no" by default) + * ENABLE_PYEO : build the python module ("no" by default) - *Note Defining Variables::, for more details. +You can pass generic options to the compiler, like: + * _GLIBCXX_PARALLEL : use the parallel version of the STL -Compiling For Multiple Architectures -==================================== - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +Installation using packages +=========================== - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. +To construct a dummy template of the EO package you will need CPack. Be warned +that those do not guarantee correct dependencies and version management. -Installation Names +Use the "package_*" scripts: + * package_deb : for debian-like systems + * package_rpm : for red-hat-like systems + +Or go through the following steps: + 1. go in the build directory where your binaries are: + cd build/ + 2. call CPack specifying the desired package system: + cpack -G DEB + 3. install the package: + sudo apt-get install EO-1.1.1-Linux.deb + + +Basic installation ================== - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. +To install the framework system-wide, copy the "eo/" directory somewhere in your +path. The "lib/" directory should be reachable for the linker and the "src/" +directory must be in the compiler include path. - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. diff --git a/eo/NEWS b/eo/NEWS index 92beb69a..f07f9975 100644 --- a/eo/NEWS +++ b/eo/NEWS @@ -1,7 +1,16 @@ -* current - - evaluators that throw an exception if a maximum time has en reached (wallclock and CPU user time for POSIX systems), independently of the number of generations +* release 1.2 (10. May. 2011) + - fixed the incremental allocation issue in the variation operator which were + taking too much time for big population sizes + - new class eoParallel enabling parallelization in EO using OpenMP. At this + time, it only concerns the evaluation operator, for advanced details go to + the file test/t-eoParallel.cpp. The default parallelization mode is off, to + switch it on, see the parameters prefixed by --parallelize-* + - pyeo compatible with the last version of Boost and Python libraries + - script installing EO manually in using symbolic links + - evaluators that throw an exception if a maximum time has been reached + (wallclock and CPU user time for POSIX systems), independently of the number of generations -* release 1.1 +* release 1.1 (8. Nov. 2010) - provide cmake build system, remove the old autotools one - package generation system - GCC 4.3 compatibility diff --git a/eo/README b/eo/README index 98cf75e1..d4268be0 100644 --- a/eo/README +++ b/eo/README @@ -10,7 +10,7 @@ The latest news about EO can be found on the sourceforge repository at http://eodev.sourceforge.net/ In case of any problem, please e-mail us at - eodev-help@lists.sourceforge.net, eodev@egroups.com + eodev-main@lists.sourceforge.net To get started, take a look at the tutorial, starting with ./tutorial/html/eoTutorial.html @@ -18,7 +18,7 @@ To get started, take a look at the tutorial, starting with The easiest way to start programming a new genome with all EO evolution engines handy is to create a new standalone EO project from the tutorial/Templates/ directory. Read Lesson 5 of the tutorial for -an introduction;) +an introduction ;) ================================================================== @@ -26,27 +26,15 @@ an introduction;) ================================================================== The basic installation procedure goes the following: -Go to your build-directory and run - $(SRCDIR)/configure - make - make check - make install -where $(SRCDIR) is the top-level source directory of EO, i.e. where -the sources where unpacked. +Go to the "eo/" and run one of the "build_*" script.  -Run "$(SRCDIR)/configure --help" for possible options. You can specify -to not build example applications, the tutorial, or to build the -ParadisEO tutorial. You may also change the installation directory -that way. +Using the "build_gcc_linux_release" script is generally what you want. The +binaries are then located in the "release/" directory. Now you should probably go to the tutorial and start learning about EO features and programming. - -In case of problems, you can read the INSTALL file - but remember this -is a standard installation file from GNU and that it contains nothing -specific about EO. - +In case of problems or if you want advanced options, you can read the INSTALL file. =================================================================== DIRECTORY STRUCTURE @@ -99,12 +87,3 @@ structure: | +-- win WINDOWS dir: project files for MS/VC5+ - - -=================================================================== - NOTES -=================================================================== -If you extracted a fresh snapshot from the cvs-repository, remember -to run - ./autogen.sh -in the source-directory before building the libraries. diff --git a/eo/app/.cvsignore b/eo/app/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/app/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/eo/app/gprop/.cvsignore b/eo/app/gprop/.cvsignore deleted file mode 100644 index 8bf1bd92..00000000 --- a/eo/app/gprop/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile.in -Makefile -gprop -.deps diff --git a/eo/app/gpsymreg/.cvsignore b/eo/app/gpsymreg/.cvsignore deleted file mode 100644 index 236f1048..00000000 --- a/eo/app/gpsymreg/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -.deps -Makefile diff --git a/eo/app/mastermind/.cvsignore b/eo/app/mastermind/.cvsignore deleted file mode 100644 index 2b85cb05..00000000 --- a/eo/app/mastermind/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile.in -Makefile -mastermind -.deps diff --git a/eo/build_gcc_linux_pyeo b/eo/build_gcc_linux_pyeo new file mode 100755 index 00000000..ec492787 --- /dev/null +++ b/eo/build_gcc_linux_pyeo @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +mkdir -p release +cd release +cmake -DENABLE_PYEO=1 .. +make +cd .. diff --git a/eo/build_gcc_linux_stl_parallel b/eo/build_gcc_linux_stl_parallel new file mode 100755 index 00000000..7208c2f5 --- /dev/null +++ b/eo/build_gcc_linux_stl_parallel @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +mkdir -p release +cd release +cmake -D_GLIBCXX_PARALLEL=1 .. +make +cd .. diff --git a/eo/build_gcc_linux_tutorial b/eo/build_gcc_linux_tutorial index f4168fd3..2908e875 100755 --- a/eo/build_gcc_linux_tutorial +++ b/eo/build_gcc_linux_tutorial @@ -1,6 +1,6 @@ #!/usr/bin/env sh -mkdir release +mkdir -p release cd release cmake -DENABLE_EO_TUTORIAL=1 .. make diff --git a/eo/build_gcc_linux_unittest b/eo/build_gcc_linux_unittest index 36220ba0..c23049e8 100755 --- a/eo/build_gcc_linux_unittest +++ b/eo/build_gcc_linux_unittest @@ -1,6 +1,6 @@ #!/usr/bin/env sh -mkdir debug +mkdir -p debug cd debug cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_CMAKE_TESTING=1 .. make diff --git a/eo/config.guess b/eo/config.guess deleted file mode 100755 index 2784e1b2..00000000 --- a/eo/config.guess +++ /dev/null @@ -1,1466 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2011-05-05' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "${UNAME_MACHINE}" in - i?86) - test -z "$VENDOR" && VENDOR=pc - ;; - *) - test -z "$VENDOR" && VENDOR=unknown - ;; -esac -test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit 0 ;; - macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux - exit 0 ;; - cris:Linux:*:*) - echo cris-axis-linux - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-${VENDOR}-linux - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-${VENDOR}-linux - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="-libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-${VENDOR}-linux ;; - PA8*) echo hppa2.0-${VENDOR}-linux ;; - *) echo hppa-${VENDOR}-linux ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-${VENDOR}-linux - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-${VENDOR}-linux - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-${VENDOR}-linuxaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linuxoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" | sed 's/linux-gnu/linux/' && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/eo/contrib/.cvsignore b/eo/contrib/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/contrib/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/eo/doc/.cvsignore b/eo/doc/.cvsignore deleted file mode 100644 index 23d7e990..00000000 --- a/eo/doc/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -eo.doxytag -html -latex -man diff --git a/eo/eo-conf.cmake b/eo/eo-conf.cmake new file mode 100644 index 00000000..e8f285cb --- /dev/null +++ b/eo/eo-conf.cmake @@ -0,0 +1,7 @@ + +# Current version +SET(PROJECT_VERSION_MAJOR 1) +SET(PROJECT_VERSION_MINOR 3) +SET(PROJECT_VERSION_PATCH 0) +SET(PROJECT_VERSION_MISC "-edge") + diff --git a/eo/src/.cvsignore b/eo/src/.cvsignore deleted file mode 100644 index 69fb0bd8..00000000 --- a/eo/src/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.lo -*.la -.deps -.libs -Makefile -Makefile.in diff --git a/eo/src/CMakeLists.txt b/eo/src/CMakeLists.txt index 97b74866..c03bc509 100644 --- a/eo/src/CMakeLists.txt +++ b/eo/src/CMakeLists.txt @@ -43,6 +43,9 @@ ADD_SUBDIRECTORY(ga) ADD_SUBDIRECTORY(gp) ADD_SUBDIRECTORY(other) ADD_SUBDIRECTORY(utils) -ADD_SUBDIRECTORY(pyeo) + +IF(ENABLE_PYEO) + ADD_SUBDIRECTORY(pyeo) +ENDIF(ENABLE_PYEO) ###################################################################################### diff --git a/eo/src/apply.h b/eo/src/apply.h index 4c09e685..23a52245 100644 --- a/eo/src/apply.h +++ b/eo/src/apply.h @@ -3,7 +3,7 @@ //----------------------------------------------------------------------------- // eoApply.h // (c) Maarten Keijzer 2000 -/* +/* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either @@ -19,7 +19,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact: todos@geneura.ugr.es, http://geneura.ugr.es - mak@dhi.dk + mak@dhi.dk */ //----------------------------------------------------------------------------- @@ -94,7 +94,7 @@ void omp_apply(eoUF& _proc, std::vector& _pop) //default(none) shared(_proc, _pop, size) for (size_t i = 0; i < size; ++i) { - _proc(_pop[i]); + _proc(_pop[i]); } } @@ -112,7 +112,7 @@ void omp_dynamic_apply(eoUF& _proc, std::vector& _pop) //default(none) shared(_proc, _pop, size) for (size_t i = 0; i < size; ++i) { - _proc(_pop[i]); + _proc(_pop[i]); } } diff --git a/eo/src/do/.cvsignore b/eo/src/do/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/src/do/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/eo/src/eo b/eo/src/eo index 18e91d60..8cebd23a 100644 --- a/eo/src/eo +++ b/eo/src/eo @@ -1,7 +1,7 @@ //----------------------------------------------------------------------------- // eo // (c) GeNeura Team 1998 - 2000 -/* +/* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either @@ -23,7 +23,7 @@ #ifdef _MSC_VER // to avoid long name warnings #pragma warning(disable:4786) -#endif +#endif #ifndef _eo_ #define _eo_ @@ -62,7 +62,7 @@ // combinations of simple eoOps (eoMonOp and eoQuadOp) #include // didactic (mimics SGA-like variation into an eoGenOp) -// calls crossover and mutation sequentially, +// calls crossover and mutation sequentially, // with their respective mutation rates #include // its dual: crossover, mutation (and copy) - proportional choice @@ -100,7 +100,7 @@ #include #include #include -// Embedding truncation selection +// Embedding truncation selection #include // the batch selection - from an eoSelectOne @@ -165,45 +165,44 @@ // velocities #include #include -#include -#include +#include +#include #include #include #include -#include +#include // flights #include -#include +#include #include -#include -#include +#include +#include // topologies #include #include #include #include -#include -#include - -// PS algorithms -#include -#include -#include +#include +#include + +// PS algorithms +#include +#include +#include // utils #include #include #include #include -#include - -#include +#include +#include #include -#endif +#endif // Local Variables: // mode: C++ diff --git a/eo/src/eoDualFitness.h b/eo/src/eoDualFitness.h index 4803361f..3b7fda0d 100644 --- a/eo/src/eoDualFitness.h +++ b/eo/src/eoDualFitness.h @@ -132,7 +132,6 @@ public: return *this; } - //! Comparison that separate feasible individuals from unfeasible ones. Feasible are always better /*! * Use less as a default comparison operator @@ -160,14 +159,16 @@ public: } //! Greater: if the other is lesser than me - bool operator>( const eoDualFitness& other ) const { return other < *this; } + bool operator>( const eoDualFitness& other ) const { return other < *this; } //! Less or equal: if the other is not lesser than me - bool operator<=( const eoDualFitness& other ) const { return !(other < *this); } + bool operator<=( const eoDualFitness& other ) const { return !(other < *this); } //! Greater or equal: if the other is not greater than me - bool operator>=(const eoDualFitness& other ) const { return !(*this < other); } + bool operator>=(const eoDualFitness& other ) const { return !(*this < other); } + //! Equal: if the other is equal to me + bool operator==(const eoDualFitness& other) const { return ( _is_feasible == other._is_feasible ) && ( _value == other._value ); } public: diff --git a/eo/src/eoEasyEA.h b/eo/src/eoEasyEA.h index eb773969..2c7c5474 100644 --- a/eo/src/eoEasyEA.h +++ b/eo/src/eoEasyEA.h @@ -78,7 +78,8 @@ template class eoEasyEA: public eoAlgo selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), - replace(_replace) + replace(_replace), + isFirstCall(true) {} /** Ctor taking a breed and merge, an overload of ctor to define an offspring size */ @@ -95,7 +96,8 @@ template class eoEasyEA: public eoAlgo selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), - replace(_replace) + replace(_replace), + isFirstCall(true) { offspring.reserve(_offspringSize); // This line avoids an incremental resize of offsprings. } @@ -113,7 +115,9 @@ template class eoEasyEA: public eoAlgo selectTransform (dummySelect, dummyTransform), breed (_breed), mergeReduce (dummyMerge, dummyReduce), - replace (_replace) { + replace (_replace), + isFirstCall(true) + { } */ @@ -131,7 +135,8 @@ template class eoEasyEA: public eoAlgo selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), - replace(_replace) + replace(_replace), + isFirstCall(true) {} @@ -149,7 +154,8 @@ template class eoEasyEA: public eoAlgo selectTransform(_select, _transform), breed(selectTransform), mergeReduce(dummyMerge, dummyReduce), - replace(_replace) + replace(_replace), + isFirstCall(true) {} /// Ctor eoBreed, eoMerge and eoReduce. @@ -166,7 +172,8 @@ template class eoEasyEA: public eoAlgo selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(_merge, _reduce), - replace(mergeReduce) + replace(mergeReduce), + isFirstCall(true) {} /// Ctor eoSelect, eoTransform, and eoReplacement @@ -183,7 +190,8 @@ template class eoEasyEA: public eoAlgo selectTransform(_select, _transform), breed(selectTransform), mergeReduce(dummyMerge, dummyReduce), - replace(_replace) + replace(_replace), + isFirstCall(true) {} /// Ctor eoSelect, eoTransform, eoMerge and eoReduce. @@ -201,7 +209,8 @@ template class eoEasyEA: public eoAlgo selectTransform(_select, _transform), breed(selectTransform), mergeReduce(_merge, _reduce), - replace(mergeReduce) + replace(mergeReduce), + isFirstCall(true) {} @@ -210,7 +219,13 @@ template class eoEasyEA: public eoAlgo /// Apply a few generation of evolution to the population. virtual void operator()(eoPop& _pop) { - _pop.reserve(offspring.capacity()); + if (isFirstCall) + { + size_t total_capacity = _pop.capacity() + offspring.capacity(); + _pop.reserve(total_capacity); + offspring.reserve(total_capacity); + isFirstCall = false; + } eoPop empty_pop; @@ -293,6 +308,8 @@ template class eoEasyEA: public eoAlgo eoPop offspring; + bool isFirstCall; + // Friend classes friend class eoIslandsEasyEA ; friend class eoDistEvalEasyEA ; diff --git a/eo/src/eoReduce.h b/eo/src/eoReduce.h index 7cca6199..7f0c1772 100644 --- a/eo/src/eoReduce.h +++ b/eo/src/eoReduce.h @@ -90,81 +90,87 @@ Softer selective pressure than pure truncate template class eoEPReduce : public eoReduce { public: -typedef typename EOT::Fitness Fitness; + typedef typename EOT::Fitness Fitness; - eoEPReduce(unsigned _t_size ): - t_size(_t_size) - { - if (t_size < 2) - { - eo::log << eo::warnings << "Warning: EP tournament size should be >= 2. Adjusted" << std::endl; - t_size = 2; - } - } - - /// helper struct for comparing on std::pairs - // compares the scores - // uses the fitness if scores are equals ???? - typedef std::pair::iterator> EPpair; - struct Cmp { - bool operator()(const EPpair a, const EPpair b) const + eoEPReduce(unsigned _t_size ): + t_size(_t_size) { - if (b.first == a.first) - return (*b.second < *a.second); - return b.first < a.first; + if (t_size < 2) + { + eo::log << eo::warnings << "Warning: EP tournament size should be >= 2. Adjusted" << std::endl; + t_size = 2; + } } - }; + + /// helper struct for comparing on std::pairs + // compares the scores + // uses the fitness if scores are equals ???? + typedef std::pair::iterator> EPpair; + struct Cmp { + bool operator()(const EPpair a, const EPpair b) const + { + if (b.first == a.first) + return (*b.second < *a.second); + return b.first < a.first; + } + }; - void operator()(eoPop& _newgen, unsigned _newsize) - { - unsigned int presentSize = _newgen.size(); + void operator()(eoPop& _newgen, unsigned _newsize) + { + unsigned int presentSize = _newgen.size(); - if (presentSize == _newsize) + if (presentSize == _newsize) return; if (presentSize < _newsize) - throw std::logic_error("eoTruncate: Cannot truncate to a larger size!\n"); + throw std::logic_error("eoTruncate: Cannot truncate to a larger size!\n"); std::vector scores(presentSize); for (unsigned i=0; i competitor.fitness()) - scores[i].first += 1; - else if (fit == competitor.fitness()) - scores[i].first += 0.5; - } - } + { + scores[i].second = _newgen.begin()+i; + Fitness fit = _newgen[i].fitness(); + for (unsigned itourn = 0; itourn < t_size; ++itourn) + { + const EOT & competitor = _newgen[rng.random(presentSize)]; + if (fit > competitor.fitness()) + scores[i].first += 1; + else if (fit == competitor.fitness()) + scores[i].first += 0.5; + } + } // now we have the scores typename std::vector::iterator it = scores.begin() + _newsize; std::nth_element(scores.begin(), it, scores.end(), Cmp()); // sort(scores.begin(), scores.end(), Cmp()); unsigned j; -// std::cout << "Les scores apres tri\n"; -// for (j=0; j tmPop; + // std::cout << "Les scores apres tri\n"; + // for (j=0; jsecond); + // it = scores.begin() + _newsize; + // while (it < scores.end()) + // _newgen.erase(it->second); } private: - unsigned t_size; + unsigned t_size; + eoPop tmPop; }; /** a truncate class that does not sort, but repeatidely kills the worse. @@ -220,7 +226,9 @@ public: if (oldSize < _newsize) throw std::logic_error("eoDetTournamentTruncate: Cannot truncate to a larger size!\n"); + // Now OK to erase some losers + std::cout << "oldSize - _newsize: " << oldSize - _newsize << std::endl; for (unsigned i=0; i(_newgen, t_size); diff --git a/eo/src/es/.cvsignore b/eo/src/es/.cvsignore deleted file mode 100644 index 022447b4..00000000 --- a/eo/src/es/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -*.lo -*.la -.deps -.libs -Makefile -Makefile.in -libcma.a -libes.a diff --git a/eo/src/es/CMakeLists.txt b/eo/src/es/CMakeLists.txt index e7b24901..9b052413 100644 --- a/eo/src/es/CMakeLists.txt +++ b/eo/src/es/CMakeLists.txt @@ -14,26 +14,29 @@ SET(CMA_LIB_OUTPUT_PATH ${EO_BINARY_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${ES_LIB_OUTPUT_PATH}) # the same output for the two libs -SET (ES_SOURCES make_algo_scalar_es.cpp - make_algo_scalar_real.cpp - make_checkpoint_es.cpp - make_checkpoint_real.cpp - make_continue_es.cpp - make_continue_real.cpp - make_genotype_es.cpp - make_genotype_real.cpp - make_op_es.cpp - make_op_real.cpp - make_pop_es.cpp - make_pop_real.cpp - make_run_es.cpp - make_run_real.cpp) - -SET (CMA_SOURCES eig.cpp - CMAState.cpp - CMAParams.cpp) +SET(ES_SOURCES + make_algo_scalar_es.cpp + make_algo_scalar_real.cpp + make_checkpoint_es.cpp + make_checkpoint_real.cpp + make_continue_es.cpp + make_continue_real.cpp + make_genotype_es.cpp + make_genotype_real.cpp + make_op_es.cpp + make_op_real.cpp + make_pop_es.cpp + make_pop_real.cpp + make_run_es.cpp + make_run_real.cpp + ) + +SET(CMA_SOURCES + eig.cpp + CMAState.cpp + CMAParams.cpp + ) - ADD_LIBRARY(es STATIC ${ES_SOURCES}) INSTALL(TARGETS es ARCHIVE DESTINATION lib COMPONENT libraries) @@ -54,4 +57,3 @@ SET(CMA_VERSION ${GLOBAL_VERSION}) SET_TARGET_PROPERTIES(cma PROPERTIES VERSION "${CMA_VERSION}") ###################################################################################### - diff --git a/eo/src/ga/.cvsignore b/eo/src/ga/.cvsignore deleted file mode 100644 index ffea8dd0..00000000 --- a/eo/src/ga/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -*.lo -*.la -.deps -.libs -Makefile -Makefile.in -libga.a diff --git a/eo/src/ga/CMakeLists.txt b/eo/src/ga/CMakeLists.txt index 7d048b6c..a463735c 100644 --- a/eo/src/ga/CMakeLists.txt +++ b/eo/src/ga/CMakeLists.txt @@ -12,14 +12,15 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) SET(GA_LIB_OUTPUT_PATH ${EO_BINARY_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${GA_LIB_OUTPUT_PATH}) -SET (GA_SOURCES make_algo_scalar_ga.cpp - make_checkpoint_ga.cpp - make_continue_ga.cpp - make_genotype_ga.cpp - make_op_ga.cpp - make_pop_ga.cpp - make_run_ga.cpp) - +SET(GA_SOURCES + make_algo_scalar_ga.cpp + make_checkpoint_ga.cpp + make_continue_ga.cpp + make_genotype_ga.cpp + make_op_ga.cpp + make_pop_ga.cpp + make_run_ga.cpp + ) ADD_LIBRARY(ga STATIC ${GA_SOURCES}) INSTALL(TARGETS ga ARCHIVE DESTINATION lib COMPONENT libraries) @@ -35,4 +36,3 @@ SET(GA_VERSION ${GLOBAL_VERSION}) SET_TARGET_PROPERTIES(ga PROPERTIES VERSION "${GA_VERSION}") ###################################################################################### - diff --git a/eo/src/gp/.cvsignore b/eo/src/gp/.cvsignore deleted file mode 100644 index 69fb0bd8..00000000 --- a/eo/src/gp/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.lo -*.la -.deps -.libs -Makefile -Makefile.in diff --git a/eo/src/gp/CMakeLists.txt b/eo/src/gp/CMakeLists.txt index c0ae8aff..44195d5f 100644 --- a/eo/src/gp/CMakeLists.txt +++ b/eo/src/gp/CMakeLists.txt @@ -1,3 +1,2 @@ FILE(GLOB HDRS *.h) INSTALL(FILES ${HDRS} DESTINATION include/eo/gp COMPONENT headers) - diff --git a/eo/src/other/.cvsignore b/eo/src/other/.cvsignore deleted file mode 100644 index 69fb0bd8..00000000 --- a/eo/src/other/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.lo -*.la -.deps -.libs -Makefile -Makefile.in diff --git a/eo/src/utils/.cvsignore b/eo/src/utils/.cvsignore deleted file mode 100644 index f4f7c5b3..00000000 --- a/eo/src/utils/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -*.lo -*.la -.deps -.libs -Makefile -Makefile.in -libeoutils.a diff --git a/eo/src/utils/CMakeLists.txt b/eo/src/utils/CMakeLists.txt index 94f994d2..010c6d41 100644 --- a/eo/src/utils/CMakeLists.txt +++ b/eo/src/utils/CMakeLists.txt @@ -12,24 +12,24 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) SET(EOUTILS_LIB_OUTPUT_PATH ${EO_BINARY_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${EOUTILS_LIB_OUTPUT_PATH}) -SET (EOUTILS_SOURCES eoData.cpp - eoFileMonitor.cpp - eoGnuplot.cpp - eoGnuplot1DMonitor.cpp - eoGnuplot1DSnapshot.cpp - eoIntBounds.cpp - eoParser.cpp - eoRealBounds.cpp - eoRNG.cpp - eoState.cpp - eoOStreamMonitor.cpp - eoUpdater.cpp - make_help.cpp - pipecom.cpp - eoLogger.cpp - eoParserLogger.cpp - eoParallel.cpp) - +SET(EOUTILS_SOURCES + eoData.cpp + eoFileMonitor.cpp + eoGnuplot.cpp + eoGnuplot1DMonitor.cpp + eoGnuplot1DSnapshot.cpp + eoIntBounds.cpp + eoParser.cpp + eoRealBounds.cpp + eoRNG.cpp + eoState.cpp + eoOStreamMonitor.cpp + eoUpdater.cpp + make_help.cpp + pipecom.cpp + eoLogger.cpp + eoParallel.cpp + ) ADD_LIBRARY(eoutils STATIC ${EOUTILS_SOURCES}) INSTALL(TARGETS eoutils ARCHIVE DESTINATION lib COMPONENT libraries) diff --git a/eo/src/utils/eoLogger.cpp b/eo/src/utils/eoLogger.cpp index b3002f46..39107612 100644 --- a/eo/src/utils/eoLogger.cpp +++ b/eo/src/utils/eoLogger.cpp @@ -26,30 +26,31 @@ Authors: */ -#ifdef _INTERIX +#ifdef _WIN32 #include -#else // _INTERIX +#else // _WIN32 #include -#endif // ! _INTERIX +#endif // ! _WIN32 #include #include #include // used to define EOF #include -#include -#include -#include -#include #include "eoLogger.h" -eoLogger eo::log; +eoLogger::eoLogger() : + std::ostream(&_obuf), -eoLogger::eoLogger() - : std::ostream(&_obuf), - _selectedLevel(eo::progress), _contextLevel(eo::quiet), - _fd(2), _obuf(_fd, _contextLevel, _selectedLevel) + _verbose("quiet", "verbose", "Set the verbose level", 'v'), + _printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'), + _output("", "output", "Redirect a standard output to a file", 'o'), + + _selectedLevel(eo::progress), + _contextLevel(eo::quiet), + _fd(2), + _obuf(_fd, _contextLevel, _selectedLevel) { _standard_io_streams[&std::cout] = 1; _standard_io_streams[&std::clog] = 2; @@ -71,18 +72,56 @@ eoLogger::~eoLogger() if (_fd > 2) { ::close(_fd); } } -std::string eoLogger::className() const +void eoLogger::_createParameters( eoParser& parser ) +{ + //------------------------------------------------------------------ + // we are saying to eoParser to create the parameters created above. + //------------------------------------------------------------------ + + std::string section("Logger"); + parser.processParam(_verbose, section); + parser.processParam(_printVerboseLevels, section); + parser.processParam(_output, section); + + //------------------------------------------------------------------ + + + //------------------------------------------------------------------ + // we're gonna redirect the log to the given filename if -o is used. + //------------------------------------------------------------------ + + if ( ! _output.value().empty() ) + { + eo::log << eo::file( _output.value() ); + } + + //------------------------------------------------------------------ + + + //------------------------------------------------------------------ + // // we're gonna print the list of levels if -l parameter is used. + //------------------------------------------------------------------ + + if ( _printVerboseLevels.value() ) + { + eo::log.printLevels(); + } + + //------------------------------------------------------------------ +} + +std::string eoLogger::className() const { return ("eoLogger"); } -void eoLogger::addLevel(std::string name, eo::Levels level) +void eoLogger::addLevel(std::string name, eo::Levels level) { _levels[name] = level; _sortedLevels.push_back(name); } -void eoLogger::printLevels() const +void eoLogger::printLevels() const { std::cout << "Available verbose levels:" << std::endl; @@ -95,25 +134,25 @@ void eoLogger::printLevels() const ::exit(0); } -eoLogger& operator<<(eoLogger& l, const eo::Levels lvl) +eoLogger& operator<<(eoLogger& l, const eo::Levels lvl) { l._contextLevel = lvl; return l; } -eoLogger& operator<<(eoLogger& l, eo::file f) +eoLogger& operator<<(eoLogger& l, eo::file f) { l._fd = ::open(f._f.c_str(), O_WRONLY | O_APPEND | O_CREAT, 0644); return l; } -eoLogger& operator<<(eoLogger& l, eo::setlevel v) +eoLogger& operator<<(eoLogger& l, eo::setlevel v) { l._selectedLevel = (v._lvl < 0 ? l._levels[v._v] : v._lvl); return l; } -eoLogger& operator<<(eoLogger& l, std::ostream& os) +eoLogger& operator<<(eoLogger& l, std::ostream& os) { if (l._standard_io_streams.find(&os) != l._standard_io_streams.end()) { @@ -128,20 +167,20 @@ eoLogger::outbuf::outbuf(const int& fd, : _fd(fd), _contextLevel(contexlvl), _selectedLevel(selectedlvl) {} -int eoLogger::outbuf::overflow(int_type c) +int eoLogger::outbuf::overflow(int_type c) { if (_selectedLevel >= _contextLevel) { if (_fd >= 0 && c != EOF) { - ssize_t num; + size_t num; num = ::write(_fd, &c, 1); } } return c; } -namespace eo +namespace eo { file::file(const std::string f) : _f(f) @@ -155,3 +194,13 @@ namespace eo : _v(std::string("")), _lvl(lvl) {} } + +//! make_verbose gets level of verbose and sets it in eoLogger +void make_verbose(eoParser& parser) +{ + eo::log._createParameters( parser ); + + eo::log << eo::setlevel(eo::log._verbose.value()); +} + +eoLogger eo::log; diff --git a/eo/src/utils/eoLogger.h b/eo/src/utils/eoLogger.h index 11b0cbee..50369d35 100644 --- a/eo/src/utils/eoLogger.h +++ b/eo/src/utils/eoLogger.h @@ -32,15 +32,12 @@ Caner Candan Here's an example explaning how to use eoLogger: \code - #include - #include - #include + #include int main(int ac, char** av) { - // We are declaring first an overload of eoParser class using Logger - // component. - eoParserLogger parser(ac, av); + // We are declaring the usual eoParser class + eoParser parser(ac, av); // This call is important to allow -v parameter to change user level. make_verbose(parser); @@ -88,17 +85,17 @@ Caner Candan */ #ifndef eoLogger_h -# define eoLogger_h +#define eoLogger_h -# include -# include -# include -# include +#include +#include +#include +#include -# include "eoObject.h" +#include "eoObject.h" +#include "eoParser.h" - -namespace eo +namespace eo { /** * Levels contents all the available levels in eoLogger @@ -117,7 +114,7 @@ namespace eo * file * this structure combined with the friend operator<< below is an easy way to select a file as output. */ - struct file + struct file { file(const std::string f); const std::string _f; @@ -127,7 +124,7 @@ namespace eo * setlevel * this structure combined with the friend operator<< below is an easy way to set a verbose level. */ - struct setlevel + struct setlevel { setlevel(const std::string v); setlevel(const Levels lvl); @@ -141,14 +138,14 @@ namespace eo * Class providing a verbose management through EO * Use of a global variable eo::log to easily use the logger like std::cout */ -class eoLogger : public eoObject, - public std::ostream +class eoLogger : public eoObject, + public std::ostream { public: eoLogger(); ~eoLogger(); - virtual std::string className() const; + virtual std::string className() const; //! Print the available levels on the standard output void printLevels() const; @@ -158,107 +155,115 @@ public: * Use this function if you want to be able to compare selected levels to a given one, like: * if( eo::log.getLevelSelected() >= eo::progress ) {...} */ - eo::Levels getLevelSelected() const { return _selectedLevel; } + inline eo::Levels getLevelSelected() const { return _selectedLevel; } /*! Returns the current level of the context * the one given when you output message with the logger */ - eo::Levels getLevelContext() const { return _contextLevel; } + inline eo::Levels getLevelContext() const { return _contextLevel; } protected: - void addLevel(std::string name, eo::Levels level); + void addLevel(std::string name, eo::Levels level); + +private: + void _createParameters( eoParser& ); private: /** * outbuf * this class inherits from std::streambuf which is used by eoLogger to write the buffer in an output stream */ - class outbuf : public std::streambuf + class outbuf : public std::streambuf { public: - outbuf(const int& fd, - const eo::Levels& contexlvl, - const eo::Levels& selectedlvl); + outbuf(const int& fd, const eo::Levels& contexlvl, const eo::Levels& selectedlvl); protected: - virtual int overflow(int_type c); + virtual int overflow(int_type c); private: - const int& _fd; - const eo::Levels& _contextLevel; - const eo::Levels& _selectedLevel; + const int& _fd; + const eo::Levels& _contextLevel; + const eo::Levels& _selectedLevel; }; private: /** * MapLevel is the type used by the map member _levels. */ - typedef std::map MapLevel; + typedef std::map MapLevel; public: /** * operator<< used there to set a verbose mode. */ - friend eoLogger& operator<<(eoLogger&, const eo::Levels); + friend eoLogger& operator<<(eoLogger&, const eo::Levels); /** * operator<< used there to set a filename through the class file. */ - friend eoLogger& operator<<(eoLogger&, eo::file); + friend eoLogger& operator<<(eoLogger&, eo::file); /** * operator<< used there to set a verbose level through the class setlevel. */ - friend eoLogger& operator<<(eoLogger&, eo::setlevel); + friend eoLogger& operator<<(eoLogger&, eo::setlevel); /** * operator<< used there to be able to use std::cout to say that we wish to redirect back the buffer to a standard output. */ - friend eoLogger& operator<<(eoLogger&, std::ostream&); + friend eoLogger& operator<<(eoLogger&, std::ostream&); private: + friend void make_verbose(eoParser&); + + eoValueParam _verbose; + eoValueParam _printVerboseLevels; + eoValueParam _output; + /** * _selectedLevel is the member storing verbose level setted by the user thanks to operator() */ - eo::Levels _selectedLevel; - eo::Levels _contextLevel; + eo::Levels _selectedLevel; + eo::Levels _contextLevel; /** * _fd in storing the file descriptor at this place we can disable easily the buffer in * changing the value at -1. It is used by operator <<. */ - int _fd; + int _fd; /** * _obuf std::ostream mandates to use a buffer. _obuf is a outbuf inheriting of std::streambuf. */ - outbuf _obuf; + outbuf _obuf; /** * _levels contains all the existing level order by position */ - MapLevel _levels; + MapLevel _levels; /** * _levelsOrder is just a list to keep the order of levels */ - std::vector _sortedLevels; + std::vector _sortedLevels; /** * _standard_io_streams */ - std::map< std::ostream*, int > _standard_io_streams; + std::map< std::ostream*, int > _standard_io_streams; }; /** @example t-eoLogger.cpp */ -namespace eo +void make_verbose(eoParser&); + +namespace eo { /** * log is an external global variable defined to easily use a same way than std::cout to write a log. */ - extern eoLogger log; + extern eoLogger log; } - /** @} */ #endif // !eoLogger_h diff --git a/eo/src/utils/eoParserLogger.cpp b/eo/src/utils/eoParserLogger.cpp deleted file mode 100644 index df70589a..00000000 --- a/eo/src/utils/eoParserLogger.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - -(c) Thales group, 2010 - - This library is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the Free - Software Foundation; version 2 of the license. - - This library is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License along - with this library; if not, write to the Free Software Foundation, Inc., 59 - Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Contact: http://eodev.sourceforge.net - -Authors: -Johann Dreo -Caner Candan - -*/ - -#include "eoParserLogger.h" - -eoParserLogger::eoParserLogger(unsigned _argc, char** _argv, - std::string _programDescription /*= ""*/ - , - std::string _lFileParamName /*= "param-file"*/, - char _shortHand /*= 'p'*/) - : eoParser(_argc, _argv, _programDescription, _lFileParamName, _shortHand), - _verbose("quiet", "verbose", "Set the verbose level", 'v'), - _printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'), - _output("", "output", "Redirect a standard output to a file", 'o') -{ - //------------------------------------------------------------------ - // we are saying to eoParser to create the parameters created above. - //------------------------------------------------------------------ - - processParam(_verbose); - processParam(_printVerboseLevels); - processParam(_output); - - //------------------------------------------------------------------ - - - //------------------------------------------------------------------ - // we're gonna redirect the log to the given filename if -o is used. - //------------------------------------------------------------------ - - if ( ! _output.value().empty() ) - { - eo::log << eo::file( _output.value() ); - } - - //------------------------------------------------------------------ - - - //------------------------------------------------------------------ - // // we're gonna print the list of levels if -l parameter is used. - //------------------------------------------------------------------ - - if ( _printVerboseLevels.value() ) - { - eo::log.printLevels(); - } - - //------------------------------------------------------------------ - -} - -eoParserLogger::~eoParserLogger() -{} - -//! make_verbose gets level of verbose and sets it in eoLogger -void make_verbose(eoParserLogger& _parser) -{ - eo::log << eo::setlevel(_parser._verbose.value()); -} diff --git a/eo/src/utils/eoParserLogger.h b/eo/src/utils/eoParserLogger.h index 48cb53ec..de6f06e6 100644 --- a/eo/src/utils/eoParserLogger.h +++ b/eo/src/utils/eoParserLogger.h @@ -1,62 +1,36 @@ -/* +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- +/* (c) Thales group, 2010 - This library is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the Free - Software Foundation; version 2 of the license. + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; + version 2 of the License. - This library is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public License along - with this library; if not, write to the Free Software Foundation, Inc., 59 - Temple Place, Suite 330, Boston, MA 02111-1307 USA + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact: http://eodev.sourceforge.net Authors: - Johann Dréo - Caner Candan +Caner Candan + */ #ifndef EO_PARSER_LOGGER_H #define EO_PARSER_LOGGER_H #include "eoParser.h" -#include "eoLogger.h" -/** - * A parser that use the advanced logging system (@see eoLogger) - * - * @ingroup Parameters - * @ingroup Logging - */ -class eoParserLogger : public eoParser -{ -public: - eoParserLogger(unsigned _argc, char** _argv, - std::string _programDescription = "", - std::string _lFileParamName = "param-file", - char _shortHand = 'p'); - ~eoParserLogger(); +#warning "[eoParserLogger] is deprecated" -private: - friend void make_verbose(eoParserLogger&); - eoValueParam _verbose; - eoValueParam _printVerboseLevels; - eoValueParam _output; -}; - -void make_verbose(eoParserLogger&); +typedef eoParser eoParserLogger; #endif // !EO_PARSER_LOGGER_H - -// Local Variables: -// coding: iso-8859-1 -// mode: C++ -// c-file-offsets: ((c . 0)) -// c-file-style: "Stroustrup" -// fill-column: 80 -// End: diff --git a/eo/test/.cvsignore b/eo/test/.cvsignore deleted file mode 100644 index a69f8865..00000000 --- a/eo/test/.cvsignore +++ /dev/null @@ -1,30 +0,0 @@ -*.o -*.csv -*.sav -*.status -.deps -Makefile -Makefile.in -t-eo -t-eobin -t-eobreeder -t-eofitness -t-eoinclusion -t-eoinsertion -t-eolottery -t-eoproblem -t-eogeneration -t-eoNonUniform -t-eo2dVector -t-eoEasyEA -t-eoUniform -t-eoRandom -t-eoCheckpointing -t-eoVector -t-eoAtomOps -t-selectOne -t-eoStateAndParser -t-eoGOpSel -t-eoExternalEO -t-eoESFull -t-eoSymreg diff --git a/eo/test/t-eoLogger.cpp b/eo/test/t-eoLogger.cpp index c087e2a2..198a8872 100644 --- a/eo/test/t-eoLogger.cpp +++ b/eo/test/t-eoLogger.cpp @@ -2,17 +2,13 @@ // t-eoLogger.cpp //----------------------------------------------------------------------------- -#include -#include -#include - #include //----------------------------------------------------------------------------- -int main(int ac, char** av) +int main(int ac, char** av) { - eoParserLogger parser(ac, av); + eoParser parser(ac, av); if (parser.userNeedsHelp()) { diff --git a/eo/test/t-openmp.cpp b/eo/test/t-openmp.cpp index cd345080..a1d68087 100644 --- a/eo/test/t-openmp.cpp +++ b/eo/test/t-openmp.cpp @@ -32,9 +32,6 @@ Caner Candan #include #include -#include -#include - #include #include @@ -114,7 +111,7 @@ void measure( size_t p, int main(int ac, char** av) { - eoParserLogger parser(ac, av); + eoParser parser(ac, av); unsigned int popMin = parser.getORcreateParam((unsigned int)1, "popMin", "Population Min", 'p', "Evolution Engine").value(); unsigned int popStep = parser.getORcreateParam((unsigned int)1, "popStep", "Population Step", 0, "Evolution Engine").value(); diff --git a/eo/tutorial/.cvsignore b/eo/tutorial/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/tutorial/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/eo/tutorial/Lesson1/.cvsignore b/eo/tutorial/Lesson1/.cvsignore deleted file mode 100644 index 58e05e18..00000000 --- a/eo/tutorial/Lesson1/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile.in -.deps -FirstBitGA -Makefile -exercise1.3 -FirstRealGA diff --git a/eo/tutorial/Lesson2/.cvsignore b/eo/tutorial/Lesson2/.cvsignore deleted file mode 100644 index 7c39fd82..00000000 --- a/eo/tutorial/Lesson2/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile.in -.deps -FirstBitEA -FirstRealEA -exercise2.3 -Makefile diff --git a/eo/tutorial/Lesson3/.cvsignore b/eo/tutorial/Lesson3/.cvsignore deleted file mode 100644 index 236f1048..00000000 --- a/eo/tutorial/Lesson3/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -.deps -Makefile diff --git a/eo/tutorial/Lesson4/.cvsignore b/eo/tutorial/Lesson4/.cvsignore deleted file mode 100644 index 236f1048..00000000 --- a/eo/tutorial/Lesson4/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -.deps -Makefile diff --git a/eo/tutorial/Lesson5/.cvsignore b/eo/tutorial/Lesson5/.cvsignore deleted file mode 100644 index 236f1048..00000000 --- a/eo/tutorial/Lesson5/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile.in -.deps -Makefile diff --git a/eo/tutorial/Lesson6/.cvsignore b/eo/tutorial/Lesson6/.cvsignore deleted file mode 100644 index 70845e08..00000000 --- a/eo/tutorial/Lesson6/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/eo/tutorial/Templates/.cvsignore b/eo/tutorial/Templates/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/tutorial/Templates/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/eo/tutorial/html/.cvsignore b/eo/tutorial/html/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/tutorial/html/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/eo/tutorial/pdf/.cvsignore b/eo/tutorial/pdf/.cvsignore deleted file mode 100644 index 3dda7298..00000000 --- a/eo/tutorial/pdf/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/website/index.html b/website/index.html index e72daad4..14417b32 100644 --- a/website/index.html +++ b/website/index.html @@ -138,7 +138,9 @@

EO is a template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast.

+

Evolutionary algorithms forms a family of algorithms inspired by the theory of evolution, that solve various problems. They evolve a set of solutions to a given problem, in order to produce the best results. @@ -175,6 +177,9 @@

If you need immediate support or have any question, you can join us on the official chatroom. Just go on our webchat interface and enter your nick. If you already have an XMPP account (Jabber or Google Talk, for example), you can directly connect to the eo@chat.jabberfr.org MUC with your favorite client.

+ + +

Features

Component-based framework

@@ -184,7 +189,6 @@

If your problem is a bit more exotic, you will have to code a class that represents how your individuals (a solution to your problem) are represented, and perhaps some variations operators, but most of the other operators (selection, replacement, stopping criteria, command-line interface, etc.) are already available in EO.

-

Main Features