You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2012/12/03 21:42:00 UTC

[lucy-commits] [2/2] git commit: refs/heads/master - Simplify how Charmonizer probes use redirection.

Simplify how Charmonizer probes use redirection.

Have all Charmonizer probe code snippets print directly to stdout rather
than have them perform redirection themselves.  Remove the "_charm.h"
header that was used to support the old-style redirection.


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/614c8ad6
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/614c8ad6
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/614c8ad6

Branch: refs/heads/master
Commit: 614c8ad69bdf664d1d0aafd301fa5baa4710a884
Parents: ca3a784
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Wed Nov 28 17:10:43 2012 -0800
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Mon Dec 3 12:39:30 2012 -0800

----------------------------------------------------------------------
 charmonizer/src/Charmonizer/Core/Compiler.c        |    7 ++--
 charmonizer/src/Charmonizer/Probe.c                |   26 ---------------
 charmonizer/src/Charmonizer/Probe/FuncMacro.c      |    9 ++---
 charmonizer/src/Charmonizer/Probe/Integers.c       |   15 +++------
 charmonizer/src/Charmonizer/Probe/LargeFiles.c     |   12 ++----
 charmonizer/src/Charmonizer/Probe/VariadicMacros.c |    6 +--
 6 files changed, 18 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/614c8ad6/charmonizer/src/Charmonizer/Core/Compiler.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.c b/charmonizer/src/Charmonizer/Core/Compiler.c
index 9fc9790..b6486b2 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.c
+++ b/charmonizer/src/Charmonizer/Core/Compiler.c
@@ -320,9 +320,10 @@ chaz_CC_capture_output(const char *source, size_t *output_len) {
     compile_succeeded = chaz_CC_compile_exe(CHAZ_CC_TRY_SOURCE_PATH,
                                             CHAZ_CC_TRY_BASENAME, source);
     if (compile_succeeded) {
-        chaz_OS_run_local(chaz_CC.try_exe_name, NULL);
-        captured_output
-            = chaz_Util_slurp_file(CHAZ_CC_TARGET_PATH, output_len);
+        chaz_OS_run_local_redirected(chaz_CC.try_exe_name,
+                                     CHAZ_CC_TARGET_PATH);
+        captured_output = chaz_Util_slurp_file(CHAZ_CC_TARGET_PATH,
+                                               output_len);
     }
     else {
         *output_len = 0;

http://git-wip-us.apache.org/repos/asf/lucy/blob/614c8ad6/charmonizer/src/Charmonizer/Probe.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe.c b/charmonizer/src/Charmonizer/Probe.c
index 84009a1..18176f7 100644
--- a/charmonizer/src/Charmonizer/Probe.c
+++ b/charmonizer/src/Charmonizer/Probe.c
@@ -24,14 +24,6 @@
 #include "Charmonizer/Core/Compiler.h"
 #include "Charmonizer/Core/OperatingSystem.h"
 
-/* Write the "_charm.h" file used by every probe.
- */
-static void
-chaz_Probe_write_charm_h(void);
-
-static void
-chaz_Probe_remove_charm_h(void);
-
 void
 chaz_Probe_init(const char *cc_command, const char *cc_flags) {
     /* Proces CHARM_VERBOSITY environment variable. */
@@ -45,7 +37,6 @@ chaz_Probe_init(const char *cc_command, const char *cc_flags) {
     chaz_CC_init(cc_command, cc_flags);
     chaz_ConfWriter_init();
     chaz_HeadCheck_init();
-    chaz_Probe_write_charm_h();
 
     if (chaz_Util_verbosity) { printf("Initialization complete.\n"); }
 }
@@ -55,26 +46,9 @@ chaz_Probe_clean_up(void) {
     if (chaz_Util_verbosity) { printf("Cleaning up...\n"); }
 
     /* Dispatch various clean up routines. */
-    chaz_Probe_remove_charm_h();
     chaz_ConfWriter_clean_up();
     chaz_CC_clean_up();
 
     if (chaz_Util_verbosity) { printf("Cleanup complete.\n"); }
 }
 
-static void
-chaz_Probe_write_charm_h(void) {
-    static const char charm_h_code[] =
-        CHAZ_QUOTE(  #ifndef CHARM_H                                                  )
-        CHAZ_QUOTE(  #define CHARM_H 1                                                )
-        CHAZ_QUOTE(  #include <stdio.h>                                               )
-        CHAZ_QUOTE(  #define Charm_Setup freopen("_charmonizer_target", "w", stdout)  )
-        CHAZ_QUOTE(  #endif                                                           );
-    chaz_Util_write_file("_charm.h", charm_h_code);
-}
-
-static void
-chaz_Probe_remove_charm_h(void) {
-    chaz_Util_remove_and_verify("_charm.h");
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/614c8ad6/charmonizer/src/Charmonizer/Probe/FuncMacro.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe/FuncMacro.c b/charmonizer/src/Charmonizer/Probe/FuncMacro.c
index c0024b8..ae5cb4c 100644
--- a/charmonizer/src/Charmonizer/Probe/FuncMacro.c
+++ b/charmonizer/src/Charmonizer/Probe/FuncMacro.c
@@ -26,9 +26,8 @@
 static int
 chaz_FuncMacro_probe_iso() {
     static const char iso_func_code[] =
-        CHAZ_QUOTE(  #include "_charm.h"               )
+        CHAZ_QUOTE(  #include <stdio.h>                )
         CHAZ_QUOTE(  int main() {                      )
-        CHAZ_QUOTE(      Charm_Setup;                  )
         CHAZ_QUOTE(      printf("%s", __func__);       )
         CHAZ_QUOTE(      return 0;                     )
         CHAZ_QUOTE(  }                                 );
@@ -49,9 +48,8 @@ static int
 chaz_FuncMacro_probe_gnu() {
     /* Code for verifying GNU func macro. */
     static const char gnu_func_code[] =
-        CHAZ_QUOTE(  #include "_charm.h"               )
+        CHAZ_QUOTE(  #include <stdio.h>                )
         CHAZ_QUOTE(  int main() {                      )
-        CHAZ_QUOTE(      Charm_Setup;                  )
         CHAZ_QUOTE(      printf("%s", __FUNCTION__);   )
         CHAZ_QUOTE(      return 0;                     )
         CHAZ_QUOTE(  }                                 );
@@ -72,10 +70,9 @@ chaz_FuncMacro_probe_gnu() {
 static char*
 chaz_FuncMacro_try_inline(const char *keyword, size_t *output_len) {
     static const char inline_code[] =
-        CHAZ_QUOTE(  #include "_charm.h"               )
+        CHAZ_QUOTE(  #include <stdio.h>                )
         CHAZ_QUOTE(  static %s int foo() { return 1; } )
         CHAZ_QUOTE(  int main() {                      )
-        CHAZ_QUOTE(      Charm_Setup;                  )
         CHAZ_QUOTE(      printf("%%d", foo());         )
         CHAZ_QUOTE(      return 0;                     )
         CHAZ_QUOTE(  }                                 );

http://git-wip-us.apache.org/repos/asf/lucy/blob/614c8ad6/charmonizer/src/Charmonizer/Probe/Integers.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe/Integers.c b/charmonizer/src/Charmonizer/Probe/Integers.c
index ad9a3b5..d2d0d7c 100644
--- a/charmonizer/src/Charmonizer/Probe/Integers.c
+++ b/charmonizer/src/Charmonizer/Probe/Integers.c
@@ -29,9 +29,8 @@ static int
 chaz_Integers_machine_is_big_endian(void);
 
 static const char chaz_Integers_sizes_code[] =
-    CHAZ_QUOTE(  #include "_charm.h"                       )
+    CHAZ_QUOTE(  #include <stdio.h>                        )
     CHAZ_QUOTE(  int main () {                             )
-    CHAZ_QUOTE(      Charm_Setup;                          )
     CHAZ_QUOTE(      printf("%d ", (int)sizeof(char));     )
     CHAZ_QUOTE(      printf("%d ", (int)sizeof(short));    )
     CHAZ_QUOTE(      printf("%d ", (int)sizeof(int));      )
@@ -41,32 +40,29 @@ static const char chaz_Integers_sizes_code[] =
     CHAZ_QUOTE(  }                                         );
 
 static const char chaz_Integers_type64_code[] =
-    CHAZ_QUOTE(  #include "_charm.h"                       )
+    CHAZ_QUOTE(  #include <stdio.h>                        )
     CHAZ_QUOTE(  int main()                                )
     CHAZ_QUOTE(  {                                         )
-    CHAZ_QUOTE(      Charm_Setup;                          )
     CHAZ_QUOTE(      printf("%%d", (int)sizeof(%s));       )
     CHAZ_QUOTE(      return 0;                             )
     CHAZ_QUOTE(  }                                         );
 
 static const char chaz_Integers_literal64_code[] =
-    CHAZ_QUOTE(  #include "_charm.h"                       )
+    CHAZ_QUOTE(  #include <stdio.h>                        )
     CHAZ_QUOTE(  #define big 9000000000000000000%s         )
     CHAZ_QUOTE(  int main()                                )
     CHAZ_QUOTE(  {                                         )
     CHAZ_QUOTE(      int truncated = (int)big;             )
-    CHAZ_QUOTE(      Charm_Setup;                          )
     CHAZ_QUOTE(      printf("%%d\n", truncated);           )
     CHAZ_QUOTE(      return 0;                             )
     CHAZ_QUOTE(  }                                         );
 
 static const char chaz_Integers_u64_to_double_code[] =
-    CHAZ_QUOTE(  #include "_charm.h"                       )
+    CHAZ_QUOTE(  #include <stdio.h>                        )
     CHAZ_QUOTE(  int main()                                )
     CHAZ_QUOTE(  {                                         )
     CHAZ_QUOTE(      unsigned __int64 int_num = 0;         )
     CHAZ_QUOTE(      double float_num;                     )
-    CHAZ_QUOTE(      Charm_Setup;                          )
     CHAZ_QUOTE(      float_num = (double)int_num;          )
     CHAZ_QUOTE(      printf("%%f\n", float_num);           )
     CHAZ_QUOTE(      return 0;                             )
@@ -367,9 +363,8 @@ chaz_Integers_run(void) {
 
             /* Buffer to hold the code, and its start and end. */
             static const char format_64_code[] =
-                CHAZ_QUOTE(  #include "_charm.h"                           )
+                CHAZ_QUOTE(  #include <stdio.h>                            )
                 CHAZ_QUOTE(  int main() {                                  )
-                CHAZ_QUOTE(      Charm_Setup;                              )
                 CHAZ_QUOTE(      printf("%%%su", 18446744073709551615%s);  )
                 CHAZ_QUOTE(      return 0;                                 )
                 CHAZ_QUOTE( }                                              );

http://git-wip-us.apache.org/repos/asf/lucy/blob/614c8ad6/charmonizer/src/Charmonizer/Probe/LargeFiles.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe/LargeFiles.c b/charmonizer/src/Charmonizer/Probe/LargeFiles.c
index e171f84..39f841a 100644
--- a/charmonizer/src/Charmonizer/Probe/LargeFiles.c
+++ b/charmonizer/src/Charmonizer/Probe/LargeFiles.c
@@ -119,10 +119,9 @@ static const int
 chaz_LargeFiles_probe_off64(void) {
     static const char off64_code[] =
         CHAZ_QUOTE(  %s                                        )
-        CHAZ_QUOTE(  #include "_charm.h"                       )
+        CHAZ_QUOTE(  #include <stdio.h>                        )
         CHAZ_QUOTE(  int main()                                )
         CHAZ_QUOTE(  {                                         )
-        CHAZ_QUOTE(      Charm_Setup;                          )
         CHAZ_QUOTE(      printf("%%d", (int)sizeof(%s));       )
         CHAZ_QUOTE(      return 0;                             )
         CHAZ_QUOTE(  }                                         );
@@ -166,11 +165,10 @@ static int
 chaz_LargeFiles_try_stdio64(chaz_LargeFiles_stdio64_combo *combo) {
     static const char stdio64_code[] =
         CHAZ_QUOTE(  %s                                         )
-        CHAZ_QUOTE(  #include "_charm.h"                        )
+        CHAZ_QUOTE(  #include <stdio.h>                         )
         CHAZ_QUOTE(  int main() {                               )
         CHAZ_QUOTE(      %s pos;                                )
         CHAZ_QUOTE(      FILE *f;                               )
-        CHAZ_QUOTE(      Charm_Setup;                           )
         CHAZ_QUOTE(      f = %s("_charm_stdio64", "w");         )
         CHAZ_QUOTE(      if (f == NULL) return -1;              )
         CHAZ_QUOTE(      printf("%%d", (int)sizeof(%s));        )
@@ -235,10 +233,9 @@ static int
 chaz_LargeFiles_probe_lseek(chaz_LargeFiles_unbuff_combo *combo) {
     static const char lseek_code[] =
         CHAZ_QUOTE( %s                                                       )
-        CHAZ_QUOTE( #include "_charm.h"                                      )
+        CHAZ_QUOTE( #include <stdio.h>                                       )
         CHAZ_QUOTE( int main() {                                             )
         CHAZ_QUOTE(     int fd;                                              )
-        CHAZ_QUOTE(     Charm_Setup;                                         )
         CHAZ_QUOTE(     fd = open("_charm_lseek", O_WRONLY | O_CREAT, 0666); )
         CHAZ_QUOTE(     if (fd == -1) { return -1; }                         )
         CHAZ_QUOTE(     %s(fd, 0, SEEK_SET);                                 )
@@ -272,11 +269,10 @@ chaz_LargeFiles_probe_pread64(chaz_LargeFiles_unbuff_combo *combo) {
      * fine as long as it compiles. */
     static const char pread64_code[] =
         CHAZ_QUOTE(  %s                                     )
-        CHAZ_QUOTE(  #include "_charm.h"                    )
+        CHAZ_QUOTE(  #include <stdio.h>                     )
         CHAZ_QUOTE(  int main() {                           )
         CHAZ_QUOTE(      int fd = 20;                       )
         CHAZ_QUOTE(      char buf[1];                       )
-        CHAZ_QUOTE(      Charm_Setup;                       )
         CHAZ_QUOTE(      printf("1");                       )
         CHAZ_QUOTE(      %s(fd, buf, 1, 1);                 )
         CHAZ_QUOTE(      return 0;                          )

http://git-wip-us.apache.org/repos/asf/lucy/blob/614c8ad6/charmonizer/src/Charmonizer/Probe/VariadicMacros.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe/VariadicMacros.c b/charmonizer/src/Charmonizer/Probe/VariadicMacros.c
index 9802273..4ac98dd 100644
--- a/charmonizer/src/Charmonizer/Probe/VariadicMacros.c
+++ b/charmonizer/src/Charmonizer/Probe/VariadicMacros.c
@@ -24,21 +24,19 @@
 
 /* Code for verifying ISO-style variadic macros. */
 static const char chaz_VariadicMacros_iso_code[] =
-    CHAZ_QUOTE(  #include "_charm.h"                                   )
+    CHAZ_QUOTE(  #include <stdio.h>                                    )
     CHAZ_QUOTE(  #define ISO_TEST(fmt, ...) \\                         )
     "                printf(fmt, __VA_ARGS__)                        \n"
     CHAZ_QUOTE(  int main() {                                          )
-    CHAZ_QUOTE(      Charm_Setup;                                      )
     CHAZ_QUOTE(      ISO_TEST("%d %d", 1, 1);                          )
     CHAZ_QUOTE(      return 0;                                         )
     CHAZ_QUOTE(  }                                                     );
 
 /* Code for verifying GNU-style variadic macros. */
 static const char chaz_VariadicMacros_gnuc_code[] =
-    CHAZ_QUOTE(  #include "_charm.h"                                   )
+    CHAZ_QUOTE(  #include <stdio.h>                                    )
     CHAZ_QUOTE(  #define GNU_TEST(fmt, args...) printf(fmt, ##args)    )
     CHAZ_QUOTE(  int main() {                                          )
-    CHAZ_QUOTE(      Charm_Setup;                                      )
     CHAZ_QUOTE(      GNU_TEST("%d %d", 1, 1);                          )
     CHAZ_QUOTE(      return 0;                                         )
     CHAZ_QUOTE(  }                                                     );