platform/upstream/ninja.git
13 years agoAdd a Windows version of SetCloseOnExec()
Qingning Huo [Tue, 13 Mar 2012 23:28:44 +0000 (23:28 +0000)]
Add a Windows version of SetCloseOnExec()

13 years agoMerge pull request #245 from usovalx/unify_depfile_targets
Evan Martin [Tue, 13 Mar 2012 06:28:18 +0000 (23:28 -0700)]
Merge pull request #245 from usovalx/unify_depfile_targets

Issue #241 - handle depfiles generated by older versions of GCC

13 years agoIssue #241 - handle depfiles generated by older versions of GCC
Oleksandr Usov [Mon, 12 Mar 2012 19:14:07 +0000 (19:14 +0000)]
Issue #241 - handle depfiles generated by older versions of GCC

Older versions of GCC would produce broken depfiles when -MT or -MQ is used
    gcc43 -MT foo.o -MMD -MF foo.o.d -o foo.o -c foo.c
will result in the following depfile
    foo.o foo.o: <dependencies>

Parse multiple outputs unifying duplicates and correctly report errors if
they are different.

13 years agoMerge pull request #235 from fischman/ppoll
Evan Martin [Thu, 8 Mar 2012 07:04:02 +0000 (23:04 -0800)]
Merge pull request #235 from fischman/ppoll

pselect->ppoll on linux to raise the process limit roof

13 years agoMerge pull request #239 from pcc/enotdir
Evan Martin [Thu, 8 Mar 2012 07:03:50 +0000 (23:03 -0800)]
Merge pull request #239 from pcc/enotdir

Treat paths of the form "existing-file/something" as non-existent

13 years agoTreat paths of the form "existing-file/something" as non-existent
Peter Collingbourne [Mon, 5 Mar 2012 01:45:04 +0000 (01:45 +0000)]
Treat paths of the form "existing-file/something" as non-existent

Some people like to construct phony target names by appending a
"/something" suffix to an existing target "foo".  But if "foo" is an
existing file, stat will report ENOTDIR for this path, causing ninja
to spew errors.  Fix this by treating ENOTDIR in the same way as we
do ENOENT -- as a non-existent path.

13 years agodrop rtti via -fno-rtti; we don't use it
Evan Martin [Tue, 6 Mar 2012 21:42:47 +0000 (13:42 -0800)]
drop rtti via -fno-rtti; we don't use it

13 years agomake urtle fit on 24-line terminal
Evan Martin [Tue, 6 Mar 2012 18:19:12 +0000 (10:19 -0800)]
make urtle fit on 24-line terminal

13 years agoadjust rspfile docs to properly render
Evan Martin [Tue, 6 Mar 2012 18:15:19 +0000 (10:15 -0800)]
adjust rspfile docs to properly render

13 years agoMerge pull request #238 from pcc/outputs-ready-no-inputs
Evan Martin [Mon, 5 Mar 2012 16:03:11 +0000 (08:03 -0800)]
Merge pull request #238 from pcc/outputs-ready-no-inputs

Mark a phony target with no inputs as outputs-ready

13 years agoMerge pull request #237 from pcc/ninja-clean-hint
Evan Martin [Mon, 5 Mar 2012 16:02:05 +0000 (08:02 -0800)]
Merge pull request #237 from pcc/ninja-clean-hint

Give a useful hint if the user runs "ninja clean" and there is no "clean...

13 years agoMark a phony target with no inputs as outputs-ready
Peter Collingbourne [Mon, 5 Mar 2012 01:35:44 +0000 (01:35 +0000)]
Mark a phony target with no inputs as outputs-ready

Even if such a target is dirty (i.e. the file does not exist), it
has nothing to do, which makes it safe to mark as outputs-ready.
Without this change, ninja will print no output when rebuilding the
target (or an order-only dependency thereof), instead of reporting
it has "no work to do".

13 years agoGive a useful hint if the user runs "ninja clean" and there is no "clean" target
Peter Collingbourne [Mon, 5 Mar 2012 01:22:21 +0000 (01:22 +0000)]
Give a useful hint if the user runs "ninja clean" and there is no "clean" target

13 years agoaddressed pcc comments
Ami Fischman [Sun, 4 Mar 2012 03:58:09 +0000 (19:58 -0800)]
addressed pcc comments

13 years agopselect->ppoll on linux to raise the process limit roof
Ami Fischman [Sun, 4 Mar 2012 01:42:39 +0000 (17:42 -0800)]
pselect->ppoll on linux to raise the process limit roof

13 years agoMerge pull request #231 from pcc/exit-cleanup-modified
Evan Martin [Fri, 2 Mar 2012 05:22:18 +0000 (21:22 -0800)]
Merge pull request #231 from pcc/exit-cleanup-modified

Be more selective about deleting output files when interrupted

13 years agoadd an "urtle" tool
Evan Martin [Thu, 1 Mar 2012 20:07:40 +0000 (12:07 -0800)]
add an "urtle" tool

13 years agoBe more selective about deleting output files when interrupted
Peter Collingbourne [Tue, 28 Feb 2012 02:14:03 +0000 (02:14 +0000)]
Be more selective about deleting output files when interrupted

Specifically, only delete if the file was modified or if the rule uses
a depfile.

Fixes issue #226.

13 years agoMerge pull request #229 from sgraham/overprint
Evan Martin [Tue, 28 Feb 2012 16:07:32 +0000 (08:07 -0800)]
Merge pull request #229 from sgraham/overprint

[win32] Overprint the previous line if we're attached to a console

13 years ago[win32] Overprint the previous line if we're attached to a console
Scott Graham [Mon, 27 Feb 2012 03:13:12 +0000 (19:13 -0800)]
[win32] Overprint the previous line if we're attached to a console

13 years agofix some public/private errors in rspfile patch
Evan Martin [Thu, 23 Feb 2012 00:21:46 +0000 (16:21 -0800)]
fix some public/private errors in rspfile patch

13 years agoMerge pull request #217 from PetrWolf/master
Evan Martin [Thu, 23 Feb 2012 00:19:39 +0000 (16:19 -0800)]
Merge pull request #217 from PetrWolf/master

Response files

13 years agoMerge pull request #218 from tfarina/fix-graph-todo
Evan Martin [Wed, 22 Feb 2012 23:52:45 +0000 (15:52 -0800)]
Merge pull request #218 from tfarina/fix-graph-todo

Fix the TODO in graph.h.

13 years agoMerge pull request #223 from pcc/restat-clean-manifest
Evan Martin [Wed, 22 Feb 2012 20:59:14 +0000 (12:59 -0800)]
Merge pull request #223 from pcc/restat-clean-manifest

Do not reload the manifest if a restat cleans it while being rebuilt

13 years agoDo not reload the manifest if a restat cleans it while being rebuilt
Peter Collingbourne [Mon, 20 Feb 2012 21:20:45 +0000 (21:20 +0000)]
Do not reload the manifest if a restat cleans it while being rebuilt

13 years agoMerge pull request #222 from polrop/test-bug-fix-62e9139740
Evan Martin [Mon, 20 Feb 2012 04:01:15 +0000 (20:01 -0800)]
Merge pull request #222 from polrop/test-bug-fix-62e9139740

Add a test for empty path in CanonicalizePath().

13 years agoAdd a test for empty path in CanonicalizePath().
Nicolas Despres [Sun, 5 Feb 2012 12:28:56 +0000 (13:28 +0100)]
Add a test for empty path in CanonicalizePath().

This test covers bug fix introduced by 62e9139740.  However,
reverting this patch does not trigger a test failure.  Maybe, I am
not testing on the right platform (Linux).  Anyway, in all cases
I think this test deserves to be added.

13 years agofix depfile_ access
Thiago Farina [Thu, 16 Feb 2012 11:06:14 +0000 (09:06 -0200)]
fix depfile_ access

13 years agoFix the TODO in graph.h.
Thiago Farina [Sun, 12 Feb 2012 18:25:38 +0000 (16:25 -0200)]
Fix the TODO in graph.h.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
13 years agoMerge branch 'master' of github.com:PetrWolf/ninja
PetrWolf [Tue, 14 Feb 2012 17:33:04 +0000 (18:33 +0100)]
Merge branch 'master' of github.com:PetrWolf/ninja

13 years agoFix tabs, typos
PetrWolf [Tue, 14 Feb 2012 17:30:14 +0000 (18:30 +0100)]
Fix tabs, typos

13 years agoMerge pull request #176 from pcc/exit-cleanup
Evan Martin [Tue, 14 Feb 2012 00:55:16 +0000 (16:55 -0800)]
Merge pull request #176 from pcc/exit-cleanup

Implement cleanup-on-interrupt

13 years agographviz: don't draw edges multiple times
Evan Martin [Tue, 14 Feb 2012 00:18:46 +0000 (16:18 -0800)]
graphviz: don't draw edges multiple times

From a patch from Ian Godin <iangodin@gmail.com>.

13 years agoMade graph horizontal (better for filenames)
Ian Godin [Sat, 11 Feb 2012 17:20:42 +0000 (09:20 -0800)]
Made graph horizontal (better for filenames)

13 years agoAdd comments, remove unwanted whitespace change
Petr Wolf [Fri, 10 Feb 2012 09:31:25 +0000 (10:31 +0100)]
Add comments, remove unwanted whitespace change

13 years agoResponse files
unknown [Thu, 9 Feb 2012 21:23:35 +0000 (22:23 +0100)]
Response files

13 years agoFixes the build on OpenIndiana
Clint Moore [Tue, 7 Feb 2012 10:00:20 +0000 (02:00 -0800)]
Fixes the build on OpenIndiana

13 years agoMerge pull request #214 from qhuo/onpipeready-fix
Evan Martin [Sat, 4 Feb 2012 22:23:31 +0000 (14:23 -0800)]
Merge pull request #214 from qhuo/onpipeready-fix

Avoid using undefined value in Subprocess::OnPipeReady()

13 years agoMerge pull request #213 from syntheticpp/evaluate-only-once
Evan Martin [Sat, 4 Feb 2012 22:21:15 +0000 (14:21 -0800)]
Merge pull request #213 from syntheticpp/evaluate-only-once

Evaluate command only once

13 years agodon't crash when CanonicalizePath removes all path components
Evan Martin [Sat, 4 Feb 2012 22:14:04 +0000 (14:14 -0800)]
don't crash when CanonicalizePath removes all path components

From a patch from Peter Kuemmel <syntheticpp@gmx.net>.

13 years agoIf a command fails, wait for all running commands to terminate before we do
Peter Collingbourne [Thu, 1 Dec 2011 20:55:18 +0000 (20:55 +0000)]
If a command fails, wait for all running commands to terminate before we do

Previously, if a command fails, the fate of the other child processes
running in parallel was inadequately controlled.  On POSIX platforms,
the processes were orphaned.  Normally they would run to completion,
but were liable to being killed by a SIGPIPE.  On Windows, the child
processes would terminate with the parent.  The cleanup-on-interrupt
patch caused the SubprocessSet and Builder destructors to clean
up after themselves by killing any running child processes and
deleting their output files, making the behaviour more predictable
and consistent across platforms.

If the build is interrupted by the user, this is correct behaviour.
But in the case where the build is stopped by a failed command, this
would be inconsistent with user expectations.  In the latter case,
we now let any remaining child processes run to completion before
leaving the main loop in Builder::Build.

13 years agoImplement cleanup-on-interrupt
Peter Collingbourne [Sun, 13 Nov 2011 05:49:16 +0000 (05:49 +0000)]
Implement cleanup-on-interrupt

This causes us to clean up by deleting any output files belonging
to currently-running commands before we quit if we are interrupted
(either by Ctrl-C or by a command failing).

Fixes issue #110.

13 years agoClean up how the build line is managed at the end of the build
Peter Collingbourne [Fri, 9 Dec 2011 15:26:38 +0000 (17:26 +0200)]
Clean up how the build line is managed at the end of the build

13 years agoAvoid using undefined value in Subprocess::OnPipeReady()
Qingning Huo [Sat, 4 Feb 2012 20:30:01 +0000 (20:30 +0000)]
Avoid using undefined value in Subprocess::OnPipeReady()

13 years agocompute command twice only in case of an error
Peter Kuemmel [Sat, 4 Feb 2012 20:04:34 +0000 (21:04 +0100)]
compute command twice only in case of an error

13 years agoMerge pull request #211 from okuoku/msvc-build-c4819
Evan Martin [Sat, 4 Feb 2012 05:24:11 +0000 (21:24 -0800)]
Merge pull request #211 from okuoku/msvc-build-c4819

windows: Disable warning C4819

13 years agowindows: Disable warning C4819
okuoku [Fri, 3 Feb 2012 13:26:58 +0000 (22:26 +0900)]
windows: Disable warning C4819

warning C4819: The file contains a character that cannot be represented
in the current code page.

13 years agoMerge pull request #199 from qhuo/create-process
Evan Martin [Sun, 29 Jan 2012 16:48:13 +0000 (08:48 -0800)]
Merge pull request #199 from qhuo/create-process

Mark CreateProcess "program not found" failure as non-fatal

13 years agoMerge pull request #210 from syntheticpp/colon-escape
Evan Martin [Sun, 29 Jan 2012 16:46:52 +0000 (08:46 -0800)]
Merge pull request #210 from syntheticpp/colon-escape

add colon escaping

13 years agoparse $:
Peter Kuemmel [Sun, 29 Jan 2012 13:26:24 +0000 (14:26 +0100)]
parse $:

'$:' is a valid string now, it expands to ':'
update error messages and show a hint when something went wrong.

13 years agoadd colon escaping
Peter Kuemmel [Sun, 29 Jan 2012 11:28:52 +0000 (12:28 +0100)]
add colon escaping

Needed for Windows drive names.

For instance configure with gtest:

    python configure.py --with-gtest=c$:\gtest-1.6.0

13 years agoMerge pull request #209 from scottfranklin/python3_compat
Evan Martin [Sun, 29 Jan 2012 00:39:34 +0000 (16:39 -0800)]
Merge pull request #209 from scottfranklin/python3_compat

Maintain python3 compatibility for ninja_syntax.py

13 years agoExplicitly turn input/output lists into list objects.
Scott Franklin [Sat, 28 Jan 2012 20:15:47 +0000 (15:15 -0500)]
Explicitly turn input/output lists into list objects.

Python 3 does not support map.append/extend.

13 years agoMerge pull request #208 from okuoku/cygwin-build
Evan Martin [Thu, 26 Jan 2012 05:47:35 +0000 (21:47 -0800)]
Merge pull request #208 from okuoku/cygwin-build

Fix cygwin build by including stdio.h here

13 years agoAdd a test, NoSuchCommand.
Qingning Huo [Wed, 25 Jan 2012 21:28:57 +0000 (21:28 +0000)]
Add a test, NoSuchCommand.

13 years agoFix cygwin build by including stdio.h here
okuoku [Wed, 25 Jan 2012 16:31:03 +0000 (01:31 +0900)]
Fix cygwin build by including stdio.h here

13 years agorearrange query/browse output to be more sensible
Evan Martin [Tue, 24 Jan 2012 23:56:15 +0000 (15:56 -0800)]
rearrange query/browse output to be more sensible

13 years agoMerge pull request #204 from syntheticpp/parser-crash
Evan Martin [Mon, 23 Jan 2012 22:19:42 +0000 (14:19 -0800)]
Merge pull request #204 from syntheticpp/parser-crash

Fix parser crash

13 years agoMerge pull request #203 from syntheticpp/win-disk-interface
Evan Martin [Mon, 23 Jan 2012 22:17:20 +0000 (14:17 -0800)]
Merge pull request #203 from syntheticpp/win-disk-interface

Win disk interface

13 years agocheck access to first element of string: string could be empty
Peter Kuemmel [Mon, 23 Jan 2012 21:24:55 +0000 (22:24 +0100)]
check access to first element of string: string could be empty

13 years agofix search&replace error on struct name
Peter Kuemmel [Mon, 23 Jan 2012 20:43:50 +0000 (21:43 +0100)]
fix search&replace error on struct name

13 years agono error code about too long file names on Windows
Peter Kuemmel [Mon, 23 Jan 2012 20:42:50 +0000 (21:42 +0100)]
no error code about too long file names on Windows

13 years agoMerge pull request #201 from syntheticpp/mingw-msvc
Evan Martin [Mon, 23 Jan 2012 00:46:53 +0000 (16:46 -0800)]
Merge pull request #201 from syntheticpp/mingw-msvc

Some workarounds are only for msvc.

13 years agoonly msvc needs these workarounds
Peter Kuemmel [Sun, 22 Jan 2012 21:40:20 +0000 (22:40 +0100)]
only msvc needs these workarounds

13 years agowindows: use _WIN32 define everywhere
Evan Martin [Sun, 22 Jan 2012 18:22:45 +0000 (10:22 -0800)]
windows: use _WIN32 define everywhere

Rather than mixing use of WIN32 and _WIN32.

13 years agoMark CreateProcess "program not found" failure as non-fatal
Qingning Huo [Fri, 20 Jan 2012 21:01:54 +0000 (21:01 +0000)]
Mark CreateProcess "program not found" failure as non-fatal

13 years agoMerge pull request #198 from nico/strip0
Evan Martin [Thu, 19 Jan 2012 00:16:49 +0000 (16:16 -0800)]
Merge pull request #198 from nico/strip0

Strip ansi escape sequences from subcommand output when not writing to a...

13 years agoStrip ansi escape sequences from subcommand output when not writing to a smart terminal.
Nico Weber [Thu, 19 Jan 2012 00:09:16 +0000 (16:09 -0800)]
Strip ansi escape sequences from subcommand output when not writing to a smart terminal.

13 years agoMerge pull request #197 from doctorlove/simple_dry_run
Evan Martin [Mon, 16 Jan 2012 18:31:43 +0000 (10:31 -0800)]
Merge pull request #197 from doctorlove/simple_dry_run

Simple dry run

13 years agoAdd a test that dry run shows all commands that could be run (none
Frances Buontempo [Mon, 16 Jan 2012 14:17:37 +0000 (14:17 +0000)]
Add a test that dry run shows all commands that could be run (none
cleaned) and a fix for this

13 years agoStop warning about chdir etc which are treated as errors on MSVC with the
Frances Buontempo [Mon, 16 Jan 2012 13:53:08 +0000 (13:53 +0000)]
Stop warning about chdir etc which are treated as errors on MSVC with the
current settings

13 years agowindows: always generate PDB
Scott Graham [Sat, 14 Jan 2012 03:17:14 +0000 (19:17 -0800)]
windows: always generate PDB

13 years agoenable libstd++ debugging in debug mode
Evan Martin [Fri, 13 Jan 2012 17:02:19 +0000 (09:02 -0800)]
enable libstd++ debugging in debug mode

13 years agoMerge pull request #196 from evanj/master
Evan Martin [Fri, 13 Jan 2012 16:55:49 +0000 (08:55 -0800)]
Merge pull request #196 from evanj/master

Fix MSVC invalid string problem

13 years agoBuildLog: Use Log::insert(Log::value_type()) to avoid invalid strings.
Evan Jones [Fri, 13 Jan 2012 14:20:07 +0000 (09:20 -0500)]
BuildLog: Use Log::insert(Log::value_type()) to avoid invalid strings.

The MSVC std::string implementation copies strings, so using make_pair
resulted in a pointer to invalid memory. This ensures the insert uses a
StringPiece without an intermediate std::string copy, so the correct pointer
ends up in the hash_map.

13 years agowindows: make ninja_test build
Frances Buontempo [Fri, 13 Jan 2012 03:04:42 +0000 (19:04 -0800)]
windows: make ninja_test build

13 years agoMerge branch 'stringpiece-hash'
Evan Martin [Thu, 12 Jan 2012 19:21:06 +0000 (11:21 -0800)]
Merge branch 'stringpiece-hash'

This branch changed the fundamental key used in hashes in Ninja from
char* to StringPiece.  Using StringPiece allows us to eliminate some
copies and null termination in various places.

While I was at it, I switched the hash function to the Murmur hash.

Seems to be ~100ms faster:

evmar:/work/chrome/src$ ~/projects/ninja/misc/measure.py ~/projects/ninja/ninja-trunk -C out/Debug chrome
sampling: 994ms 1010ms 1000ms 999ms 1019ms 994ms 1002ms 993ms 997ms 1040ms
estimate: 993ms (mean err 11.6ms)
evmar:/work/chrome/src$ ~/projects/ninja/misc/measure.py ~/projects/ninja/ninja -C out/Debug chrome
sampling: 888ms 895ms 891ms 886ms 896ms 888ms 891ms 903ms 895ms 888ms
estimate: 886ms (mean err 5.7ms)

13 years agodecide on murmur hash, delete stl hash
Evan Martin [Thu, 12 Jan 2012 19:16:51 +0000 (11:16 -0800)]
decide on murmur hash, delete stl hash

A nice thing about working on Google: a C++ expert who happened
to be writing a proposal on hashing for the next C++ version
wandered into my office.  He seemed to think using Murmur here
is fine.

13 years agobuild gtest with -fvisibility=hidden as well
Evan Martin [Thu, 12 Jan 2012 00:18:37 +0000 (16:18 -0800)]
build gtest with -fvisibility=hidden as well

Fixes a warning on Mac.

13 years agomake new hash work on windows
Evan Martin [Wed, 11 Jan 2012 18:22:50 +0000 (10:22 -0800)]
make new hash work on windows

13 years agowindows: hash_map bucket count has different getter
Frances Buontempo [Wed, 11 Jan 2012 17:43:11 +0000 (09:43 -0800)]
windows: hash_map bucket count has different getter

13 years agoGetTempPath() needs windows.h
Frances Buontempo [Wed, 11 Jan 2012 17:38:41 +0000 (09:38 -0800)]
GetTempPath() needs windows.h

13 years agoback to murmur hash
Evan Martin [Mon, 9 Jan 2012 22:06:09 +0000 (14:06 -0800)]
back to murmur hash

13 years agoremove string copy while loading depfiles
Evan Martin [Mon, 9 Jan 2012 21:46:57 +0000 (13:46 -0800)]
remove string copy while loading depfiles

13 years agosplit canonicalize
Evan Martin [Mon, 9 Jan 2012 21:40:06 +0000 (13:40 -0800)]
split canonicalize

13 years agomore stringpiece
Evan Martin [Mon, 9 Jan 2012 21:35:16 +0000 (13:35 -0800)]
more stringpiece

13 years agomurmur -> stl hash
Evan Martin [Mon, 9 Jan 2012 21:30:18 +0000 (13:30 -0800)]
murmur -> stl hash

13 years agoswitch node lookup to StringPiece
Evan Martin [Mon, 9 Jan 2012 21:30:09 +0000 (13:30 -0800)]
switch node lookup to StringPiece

13 years agoconvert ExternalStringHash to use StringPiece
Evan Martin [Mon, 9 Jan 2012 20:54:31 +0000 (12:54 -0800)]
convert ExternalStringHash to use StringPiece

13 years agoinclude main hash load in -d stats output
Evan Martin [Mon, 9 Jan 2012 17:01:41 +0000 (09:01 -0800)]
include main hash load in -d stats output

13 years agoconfigure.py: make CC='command with args' work
Craig Schlenter [Mon, 9 Jan 2012 15:57:20 +0000 (07:57 -0800)]
configure.py: make CC='command with args' work

13 years agodynamic metrics report width
Evan Martin [Fri, 6 Jan 2012 18:07:45 +0000 (10:07 -0800)]
dynamic metrics report width

13 years agotrack canonicalize metric
Evan Martin [Fri, 6 Jan 2012 18:05:28 +0000 (10:05 -0800)]
track canonicalize metric

13 years agomigrate tempdir code to test.cc
Evan Martin [Fri, 6 Jan 2012 19:34:10 +0000 (11:34 -0800)]
migrate tempdir code to test.cc

13 years agoadjust restat behavior around missing outputs
Evan Martin [Thu, 5 Jan 2012 23:20:07 +0000 (15:20 -0800)]
adjust restat behavior around missing outputs

If a restat rule claims to write an output but doesn't, consider it
"no change" (in the restat sense) if the output didn't exist beforehand.
I.e. if the output didn't exist before and the output doesn't exist after,
we don't need to run dependent rules.

13 years agoadd a '-d stats' flag for detailed timings
Evan Martin [Thu, 5 Jan 2012 21:35:47 +0000 (13:35 -0800)]
add a '-d stats' flag for detailed timings

1) Add a system for recording detailed timing info of functions.
2) Add a -d flag for requesting debug info at runtime, with the
   above as the first user.

13 years agowindows: don't use \e in string
Evan Martin [Thu, 5 Jan 2012 20:17:08 +0000 (12:17 -0800)]
windows: don't use \e in string

13 years agodrop some std:: prefixes
Evan Martin [Thu, 5 Jan 2012 17:25:37 +0000 (09:25 -0800)]
drop some std:: prefixes

13 years agoconvert all time_t to a new TimeStamp type
Evan Martin [Thu, 5 Jan 2012 17:24:30 +0000 (09:24 -0800)]
convert all time_t to a new TimeStamp type

13 years agofactor out the main builder call
Evan Martin [Thu, 5 Jan 2012 01:07:23 +0000 (17:07 -0800)]
factor out the main builder call