From e3e2cc7e0d647b628b245372a7c178ed492f42c4 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Tue, 5 Feb 2008 23:09:33 -0600
Subject: [PATCH] Add builder.load-everything

---
 extra/builder/builder.factor                  | 57 ++++++++++++-------
 .../load-everything/load-everything.factor    | 23 ++++++++
 2 files changed, 58 insertions(+), 22 deletions(-)
 create mode 100644 extra/builder/load-everything/load-everything.factor

diff --git a/extra/builder/builder.factor b/extra/builder/builder.factor
index 832b89a7dc..375023cb5e 100755
--- a/extra/builder/builder.factor
+++ b/extra/builder/builder.factor
@@ -33,19 +33,19 @@ SYMBOL: builder-recipients
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-! : target ( -- target ) `{ ,[ os ] %[ cpu "." split ] } "-" join ;
+: target ( -- target ) `{ ,[ os ] %[ cpu "." split ] } "-" join ;
 
-: target ( -- target )
-  { { [ os "windows" = ] [ "windows-nt-x86-32" ] }
-    { [ t ]              [ `{ ,[ os ] %[ cpu "." split ] } "-" join ] } }
-  cond ;
+! : target ( -- target )
+!   { { [ os "windows" = ] [ "windows-nt-x86-32" ] }
+!     { [ t ]              [ `{ ,[ os ] %[ cpu "." split ] } "-" join ] } }
+!   cond ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 : factor-binary ( -- name )
   os
   { { "macosx" [ "./Factor.app/Contents/MacOS/factor" ] }
-    { "windows" [ "./factor-nt.exe" ] }
+    { "winnt" [ "./factor-nt.exe" ] }
     [ drop "./factor" ] }
   case ;
 
@@ -61,7 +61,13 @@ VAR: stamp
 
   "/builds/factor" cd
   
-  { "git" "pull" "--no-summary" "git://factorcode.org/git/factor.git" }
+  {
+    "git"
+    "pull"
+    "--no-summary"
+    "git://factorcode.org/git/factor.git"
+    "master"
+  }
   run-process process-status
   0 =
   [ ]
@@ -74,7 +80,7 @@ VAR: stamp
   "/builds/" stamp> append make-directory
   "/builds/" stamp> append cd
 
-  { "git" "clone" "/builds/factor" } run-process drop
+  { "git" "clone" "../factor" } run-process drop
 
   "factor" cd
 
@@ -121,20 +127,27 @@ VAR: stamp
     "builder: bootstrap" throw
   ] if
 
-  `{
-     { +arguments+
-       { ,[ factor-binary ] "-e=USE: tools.browser load-everything" } }
-     { +stdout+    "../load-everything-log" }
-     { +stderr+    +stdout+ }
-   }
-  >hashtable [ run-process process-status ] benchmark nip
-  "../load-everything-time" <file-writer> [ . ] with-stream
-  0 =
-  [ ]
-  [
-    "builder: load-everything" "../load-everything-log" email-file
-    "builder: load-everything" throw
-  ] if ;
+!   `{
+!      { +arguments+
+!        { ,[ factor-binary ] "-e=USE: tools.browser load-everything" } }
+!      { +stdout+    "../load-everything-log" }
+!      { +stderr+    +stdout+ }
+!    }
+!   >hashtable [ run-process process-status ] benchmark nip
+!   "../load-everything-time" <file-writer> [ . ] with-stream
+!   0 =
+!   [ ]
+!   [
+!     "builder: load-everything" "../load-everything-log" email-file
+!     "builder: load-everything" throw
+!   ] if ;
+
+  `{ ,[ factor-binary ] "-run=builder.load-everything" } run-process drop
+  "../load-everything-log" exists?
+  [ "builder: load-everything" "../load-everything-log" email-file ]
+  when
+
+  ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
diff --git a/extra/builder/load-everything/load-everything.factor b/extra/builder/load-everything/load-everything.factor
new file mode 100644
index 0000000000..12007f214b
--- /dev/null
+++ b/extra/builder/load-everything/load-everything.factor
@@ -0,0 +1,23 @@
+
+USING: kernel continuations io io.files prettyprint vocabs.loader
+       tools.time tools.browser ;
+
+IN: builder.load-everything
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: runtime ( quot -- time ) benchmark nip ;
+
+: log-runtime ( quot file -- )
+  >r runtime r> <file-writer> [ . ] with-stream ;
+
+: log-object ( object file -- ) <file-writer> [ . ] with-stream ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: do-load-everything ( -- )
+  [ [ load-everything ] catch ] "../load-everything-time" log-runtime
+  [ require-all-error-vocabs    "../load-everything-log"  log-object ]
+  when ;
+
+MAIN: do-load-everything
\ No newline at end of file