History log of /build/kati/func.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c3f6a9791d9b747a49dfd02602bb5662ba6e2783 27-Feb-2018 Dan Willemsen <dwillemsen@google.com> Add KATI_(deprecate|obsolete)_export

Allow makefiles to mark the `export` and `unexport` keywords as
deprecated or obsolete. In large builds like Android, we've got our own
ways to set global environment variables, it's very unlikely that
individual makefiles need to set an environment variable for every
single rule.

We expect to eventually add environment variables to the list of inputs
that ninja checks to see if a command needs to run again (currently it
just checks the timestamps and commandline). Reducing the ability for
makefiles to export global variables per-configuration means that we're
more likely to share compile steps between configurations.

Change-Id: I8df0630ef264e39fd077b08dcac57e571ebe214f
/build/kati/func.cc
741974195712be8c53529cffc0b8222c970f685c 28-Dec-2017 Dan Willemsen <dwillemsen@google.com> Expand PeekVar to KATI_(deprecated|obsolete)_var

So that marking a variable as deprecated or obsolete does not cause the
variable to be inserted into the used environment table.
/build/kati/func.cc
36e5729db554afaea6fe9b23f3caa87b6c8cc80d 09-Oct-2017 Dan Willemsen <dwillemsen@google.com> Keep track of stack usage, report line that used the most

This won't keep track of everything, but was useful in tracking down
some recursive variables in the android build that shouldn't have been
recursive (they were using 1MB+ of stack).

Change-Id: I5e6b70480cffbebb09dfd72276017559480da948
/build/kati/func.cc
3ce083f01d6e62e9fb9b328e312d97a074fe6128 12-Oct-2017 Dan Willemsen <dwillemsen@google.com> `clang-format -i -style=file *.cc *.h`

Change-Id: I62a87c5d8309b21265e904c0aeb9b3e094c9024a
/build/kati/func.cc
276e96ac9502bc5a399d6cad9e818faac4372ae4 03-Oct-2017 Dan Willemsen <dwillemsen@google.com> Add deprecated / obsolete variable support

By calling the custom KATI_deprecated_var / KATI_obsolete_var functions,
variables may be marked as deprecated or obsolete.

When accessed or assigned, deprecated variables will print a warning.

When accessed or assigned, obsolete variables will print an error and
stop.

Variables do not need to be set before calling the functions, and will
persist the deprecation warning through a reassignment. This way we can
easily mark variables that are sometimes passed via the environment as
deprecated.

Change-Id: Id04c974c446f471a18cc173f817760f4a02b9239
/build/kati/func.cc
692e64ebf83bc87baca6e3c90c3d0b2849655d75 23-Feb-2017 Dan Willemsen <dwillemsen@google.com> Pass a Loc into FindEmulator for better warnings

Before this change, we'd only get a warning from FindEmulator, with no
idea which makefile caused it:

FindEmulator: find: `tests': No such file or directory

With this change, we'll get a better idea of which line triggered that
problem:

cts/tests/tests/content/Android.mk:43: FindEmulator: find: `test': No such file or directory

And it will be colorized like any other location-based warning with the
previous patch if --color_warnings is turned on.
/build/kati/func.cc
e41c7556c22bda359c2b97cd98d59082110add95 22-Feb-2017 Dan Willemsen <dwillemsen@google.com> Add --color_warnings to make warnings/errors like clang

This adds new (WARN|KATI_WARN|ERROR)_LOC log macro variants that take a
location as the first argument, and will prefix that location
information to the warning/error lines.

When --color_warnings is enabled, it reformats them to have a standard
warning:/error: infix, and adds colors in order to match the
warnings/errors produced by clang.
/build/kati/func.cc
2547af08ce2727327c2a5d8a3b62078d8e3bb04c 04-Oct-2016 Dan Willemsen <dan@danw.org> Merge pull request #97 from danw/file_func

Implement the `file` function to read and write files
f06d8019e99ae6aee1d2881f30315aee7b544cfb 03-Oct-2016 Dan Willemsen <dwillemsen@google.com> Implement the `file` function to read and write files

This allows us to do file reading and writing without $(shell). Besides
being simpler, this also allows faster regen times, since we can just
stat the files to be read, or directly write to the files that need to
be written.
/build/kati/func.cc
064be227bfc5948a74e034fd613d556a49e8b49b 01-Oct-2016 Dan Willemsen <dwillemsen@google.com> Optimize RunCommand by removing /bin/sh wrapper when possible

For every $(shell echo "test: $PATH") command, when SHELL is /bin/bash,
we essentially run: (each arg wrapped in [])

[/bin/sh] [-c] [/bin/bash -c "echo \"test: \$PATH\""]

This is redundant, since we can just use SHELL, and then we don't need
to do an extra level of shell escaping either. This change makes us run
this instead:

[/bin/bash] [-c] [echo "test: $PATH"]

If SHELL is more complicated than an absolute path to a binary, then
we'll fall back to /bin/sh.

Using the benchmark introduced in the last change, this reduces a
minimal RunCommand execution with a simple SHELL from 3.7ms to 1.3ms.

For a more complex benchmark (though less normalized), for an AOSP
Android build, this change shrinks the average time spent in $(shell)
functions from 4.5ms to 3ms.

Change-Id: I622116e33565e58bb123ee9e9bdd302616a6609c
/build/kati/func.cc
40e5a3d454cfc6b875fffb7fa0c416620d5526fe 17-Sep-2016 Dan Willemsen <dwillemsen@google.com> Don't ignore all date/echo commands

echo commands may have side-effects (writing a file), or be testing a
condition and echoing a different value.

date commands may be part of a larger command as well. In any case, if
the command changes, and would cause changes to the ninja file, then we
want to regenerate the ninja file.

Just whitelist `date +%s` for now, since Android uses that as its only
build-time date source, and we don't want to rebuild the ninja file
every time for that. Eventually, it should be removed, but that means
removing all makefile choices on BUILD_NUMBER, since that depends on
BUILD_DATETIME as well. In either case, the real value should never be
inserted into the ninja file.

Change-Id: I3b36c8b46f747c1b22a3faacf1fc34683faa9b70
/build/kati/func.cc
71e7934571ae7e71e8ae5e80cd163b5812bd71db 07-Jun-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix $(join) for #76
/build/kati/func.cc
9f4c646bac8c1c6a7eac9dad58aa7db9fb96da71 02-Jun-2016 Stefan Becker <stefanb@gpartner-nvidia.com> [C++] $(eval) stops when first character is '#'

Regression when compared to GNU make behaviour.

Test case:

$ cat ../Makefile.comment-in-macro
.PHONY: all

define _rule
# comment
all:
:
endef

$(eval $(_rule))

$ make -f Makefile.comment-in-macro
:
$ ckati --ninja --ninja_dir . --gen_all_targets -f Makefile.comment-in-macro
*** No targets.

Fixes https://github.com/google/kati/issues/74
/build/kati/func.cc
9f6343caff8c7c505dd9e1b5a22e2b60f3c0d94f 02-May-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Always sort glob results

This fixes issue #69. GNU make 3 sorts both for include and
$(wildcard) while GNU make 4 doesn't.
/build/kati/func.cc
2941ea07651737a6151b19db45c010d2083dfa1d 27-Apr-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Handle .POSIX at eval time

.POSIX pseudo target should change the behavior of $(shell).
This also implements .POSIX for ckati's non-ninja mode.
/build/kati/func.cc
d8d43ea4f26b5e2a87c8d8ef843c4434935d8ed7 27-Apr-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Reduce unnecessary string allocation

A minor follow-up of 167e1f750dfed276d50ad93ebf0ce0a1f6e6f9ac
/build/kati/func.cc
d4f287145feb677e99f0bf30fa6a0e14bd79f896 07-Apr-2016 Stefan Becker <stefanb@gpartner-nvidia.com> [C++] Store SHELL value in command result

$(shell ...) command lines are executed using $(SHELL). We need to use
the same shell during regeneration check instead of hard-coding /bin/sh
or otherwise the results might be different when $(SHELL) is redefined
in the makefile.

Fixes https://github.com/google/kati/issues/53

Change-Id: I1f9809106f29f7e806324a82e2323a2f8df64b63
/build/kati/func.cc
167e1f750dfed276d50ad93ebf0ce0a1f6e6f9ac 07-Apr-2016 Stefan Becker <stefanb@gpartner-nvidia.com> [C++] Ignore white space around $(call) function name

Regression when compared to GNU make behaviour.

Test case:

$ cat Makefile.call-func-name
func = $(info called with '$(1)')
test = $(call $(1),$(1))

$(call test,func)
$(call test, func)
$(call test,func )
$(call test, func )

$ make -f Makefile.call-func-name
called with 'func'
called with ' func'
called with 'func '
called with ' func '
make: *** No targets. Stop.

$ ckati -c --warn -f Makefile.call-func-name
called with 'func'
Makefile.call-func-name:5: *warning*: undefined user function: func
Makefile.call-func-name:6: *warning*: undefined user function: func
Makefile.call-func-name:5: *warning*: undefined user function: func
*** No targets.

Fixes https://github.com/google/kati/issues/49

Change-Id: I3d982cd8d6d9777034df64540c32846300cb72f2
/build/kati/func.cc
c9b9e5eea8b477a103cdec951ef2a299f9cd49ba 18-Feb-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Associate global variables with Symbols directly
/build/kati/func.cc
2d353a0c5c1e5eee1e986334445063fd78cf1c97 15-Feb-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Always use std::stable_sort

It seems this is a fairly good choice even if we compare this
against string-specific algorithms, probably because our
strings are not usually very long.
/build/kati/func.cc
1443689e8d54961e5288e144ba3a051e9e3bac8a 12-Feb-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Use LCP merge sort for $(sort)

and use stable_sort on Mac.

On Linux:
LCPMS: 0.627s, sort: 3.37s, stable_sort: 1.79s, qsort: 1.95s

On Mac:
LCPMS: 1.583s, sort: 1.33s, stable_sort: 1.19s, qsort: 1.80s
/build/kati/func.cc
f3c9bbc015468207baa785695b0f3ce4f4b4e8fa 08-Feb-2016 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Reduce unnecessary Intern from CallFunc
/build/kati/func.cc
cbb801c461562b7319f86a4889f5349e27484b8b 18-Dec-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Revert "[C++] Do not fail by $(shell) in functions for now"

This reverts commit 42ce87c381f6990db9c7ca525d51ff21c052a98d.
/build/kati/func.cc
42ce87c381f6990db9c7ca525d51ff21c052a98d 05-Dec-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Do not fail by $(shell) in functions for now

So that the previous change can be merged to AOSP right now.
/build/kati/func.cc
28da2379c3b819088f0a503fcd0bfdd27ab40879 30-Nov-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Explicitly disallow $(shell) in other make constructs
/build/kati/func.cc
433ad99f17297c9f6d87f423d543490f44fc55d7 17-Nov-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Add a warning for undefined user functions
/build/kati/func.cc
bbe55487c389c4f01d70d63ed8f443d026399d7b 17-Nov-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Add a fast path for $(eval) which starts with #
/build/kati/func.cc
644d6b9b5e0ffa14e38e7c2212e1a686b248c1cd 17-Nov-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Add --warn flag which produces extra warnings
/build/kati/func.cc
f23ae8caf11bf0d37d5669603224b76638fc74d4 13-Nov-2015 Colin Cross <ccross@android.com> Add --no_ignore_dirty flag

Android needs to ignore dirty files under out/ when deciding to rebuild,
except for the soong-generated out/Android.mk. Add a --no_ignore_dirty
flag to override the pattern provided in --ignore_dirty.

Change-Id: I8810963f4dff07b51187868c7afedb10c6a4cb2e
/build/kati/func.cc
b67a299ca5eb1c9272aa01fe2645d2c7a28c5d72 07-Nov-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix a CHECK failure

Stats::Start could be recursively called. Also, measuring
evaluation time of $(wildcard) parameters didn't make sense.
/build/kati/func.cc
71cf60b7609a2fb3f4dc4112061cd32b05c09657 08-Oct-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Stop using realpath(1) to handle $(realpath) in recipe

This should fix $(realpath) on Mac.
/build/kati/func.cc
cb4724e4cd7bb23f71658e62a6dba256a1ad0bd5 08-Oct-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix realpath implementation for multiple parameters
/build/kati/func.cc
212b7a568c07bdb8b4658ae27da9fdc7c44b274e 05-Oct-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix a off-by-one error in StripShellComment
/build/kati/func.cc
645cca7910dccf4811dbf65d4c83a068a83b48c9 24-Sep-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Rename value.* and ast.* to expr.* and stmt.*, respectively
/build/kati/func.cc
003d06ede28997fcfbda65a14907b3ca17fb2d39 09-Sep-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] A global refactoring for command line flags

So we will be able to use the command line parser for sub-makes.
/build/kati/func.cc
e6f6858860e28b4336ae5d64d42b5080a6fbe4c1 21-Aug-2015 Dan Willemsen <dwillemsen@google.com> [C++] Fix newlines in $(info/warning/error)

Change-Id: Ia20a1ef563a6871ed843b9388fe27e87b8bd7020
/build/kati/func.cc
e978a89aa4eadf95fe2b0fbe5ae36b04b1bf059b 17-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix warnings for clang
/build/kati/func.cc
fb415ad2b0835e251b4d5cb5a8397b80c41525d6 14-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Remove all shared_ptr<string>
/build/kati/func.cc
5081c71d90a099a96148c39835a93c8c1eff1756 14-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Stop using shared_ptr<string> in SimpleVar
/build/kati/func.cc
180b409602e3174a891568d79d42e6343378f40a 13-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Store command results with no output

Instead, we stop storing results of commands which are
specified by --ignore_dirty
/build/kati/func.cc
4db9edc950808e5da5fe4fb954b45403e462064b 13-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Run most $(shell) to check if regeneration is necessary
/build/kati/func.cc
b4467960852220d4fe01163b166a76ff2d8f7c0a 07-Aug-2015 Dan Willemsen <dwillemsen@google.com> [C++] Fix automatic variables in nested $(call

An omitted argument should be blank, even if it's nested inside another
call statement that did have that argument passed.

Android uses missing arguments as defaults in many places.
/build/kati/func.cc
41f30562cd4f906a1029a9b5c2991a38882d41a5 06-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Merge pull request #16 from danw/unsorted_find

[C++] Don't sort find/ls results
e7a6822b3e7901bf0f0845de68f5a3f52fb11546 06-Aug-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Add findleaves support to FindEmulator
/build/kati/func.cc
48d6e8cf10618a398a85f3728f7a9243b4c57090 05-Aug-2015 Dan Willemsen <dwillemsen@google.com> [C++] Don't sort find/ls results

These should only be sorted if explicitly requested, otherwise
make-built binaries may be different from kati-built binaries.

This resolves some binary-diff issues for Android between libc.a built
with make vs kati/ninja. To be the same across multiple
checkouts/machines, we should probably switch android to sorting these
results, but then the kati ninja support will stop working.
/build/kati/func.cc
c9b0acaf0a11eee6b0152c51d9633758ad8c662c 31-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Re-generate ninja file when a file is added/removed

With this change, we store the results of file list related
commands in .kati_stamp. If one of them has been changed,
we re-generate ninja file.

Currently, this check is slow. We need to check the timestamp
of directories first like what we are doing for $(wildcard).
/build/kati/func.cc
fc14d5f97d00b51aae88cb193e749ed7804d82b3 28-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix comment_in_command.mk
/build/kati/func.cc
65dce5461745a58fe5a294527aaaf6fc8f8b73ee 28-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix realpath.mk for ninja
/build/kati/func.cc
86e113342a49499850701e3b752ce56ec73d34d6 28-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix info, warning, and error for ninja
/build/kati/func.cc
7409aee3b69a7de63af7a4c3dd7ea87d84fed0f1 28-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Run $(wildcard) at generation time, not ninja time

Also add a test case to wildcard_cache.mk
/build/kati/func.cc
580cc1fcb427bb348cf247d6cad12da5e92464f9 27-Jul-2015 Colin Cross <ccross@android.com> [C++] support function variables beyond $9

Functions can take more than 9 arguments. Use StringPrintf to create
the temporary variable names for arguments beyond $9.
/build/kati/func.cc
68e712b88b5b65811c29824c0e06ebce8202cf38 16-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Evaluate "echo $((XXX))" at generation time

./runtest.rb -c -n testcase/shell_arith_in_recipe.mk
/build/kati/func.cc
5af931dc0498ed61e31b83689b07effa601a7839 06-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix $(subst) with an empty pattern
/build/kati/func.cc
0e3873a2bed37cc4668919184cf338af80740cc5 05-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix wildcard_cache.mk
/build/kati/func.cc
94d6f2a2843a3da25498e2692b137e1f222931c8 04-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix shell_var.mk
/build/kati/func.cc
388e85886bb13ceeb91cbeb6d94cc9ab83f30f53 03-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Remove STRING_PIECE macro
/build/kati/func.cc
4e950e6f4e4d0204412550b2a67be7c231018eb8 01-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Make FindEmulator optional
/build/kati/func.cc
62b16e7b9424f88e4907a6879d15ee832ef49477 01-Jul-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Use vfork and exec instead of popen for $(shell)
/build/kati/func.cc
5f57a99a879b60bc7e8cb6155c51bc026ed1d30d 30-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Introduce FindEmulator to speed up find command
/build/kati/func.cc
b123fe50d41b8bd4236959ad486bf78991389e4d 30-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Report particularly slow shell commands
/build/kati/func.cc
0d8e79b7753a89ac6beaf638a535ec63f1941444 29-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Add a way to retrieve stats
/build/kati/func.cc
e7992752dbfe23d0a88312b4279531c39512b9a6 29-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Introduce Symbol
/build/kati/func.cc
fe97c4154b6c56487fd7260dc45e71feff7eab2b 29-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Sort the result of $(wildcard)
/build/kati/func.cc
55906852d451c0b11bb6fba7e674ad44568e951f 29-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Fix $(dir /foo) for both C++ and Go
/build/kati/func.cc
df1fc8b2ead00bad8c23065affb9576a4b03cff5 29-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement the first version of NinjaGenerator
/build/kati/func.cc
5d53bc72f71810b99f27489f9468c123386a9693 26-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix parameter evaluation for $(call)
/build/kati/func.cc
f62e9a715e23083b9d3434286653a8a84ea9599c 25-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Define VarOrigin
/build/kati/func.cc
744bb2b8d146eaba4d073cf58e35a60903e06de8 24-Jun-2015 Fumitoshi Ukai <fumitoshi.ukai@gmail.com> go gettable for github.com/google/kati
/build/kati/func.cc
1d545aa8a83ba34273b4692c78cf1981fc798658 23-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Add Apache license header to recently added files
/build/kati/func.cc
c22fdb49c772760574b7b7969242e15dea30993d 22-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement origin and flavor
/build/kati/func.cc
81699bef6317b6de8129d4ad1b7ee6201ed5981e 22-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix value.mk
/build/kati/func.cc
a6a17a4a4ae66ecbdc66ee977131360741bdc5b2 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Refactor pattern functions in strutil
/build/kati/func.cc
76ff98375f92f73aab6ad0d51dc5fe9d9e6528d1 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix assign_in_parens.mk
/build/kati/func.cc
3064f1fcc2deeb63fc030c953bcf8edc821ad64e 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement call
/build/kati/func.cc
cf0cd68ef4d2b8268ade22418c17e0079e9c85e1 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement foreach
/build/kati/func.cc
fead3b7c8c9f99f5b396fed60b9b66c91879805f 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement if, and, and or
/build/kati/func.cc
80456fb15d4c0cef3df83a96f35d3b1220394066 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement eval
/build/kati/func.cc
8f68bd3becce2fa8f442468691c2555d5a2f37e0 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Introduce ScopedTerminator
/build/kati/func.cc
e22fe8efc0689cca613cbe72d5daa307889cadb1 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> Add a couple of failing testcases to origin and flavor
/build/kati/func.cc
8a96358d16ab0c435820d07472e301e9d3b2c03a 18-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement abspath
/build/kati/func.cc
5d694f0d17ac2016415bb7adbd589ca4a989a98b 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement addsuffix and addprefix
/build/kati/func.cc
67f9a70b05f54dfa0a4d13c5d2ca16557b8917ad 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement dir, notdir, suffix, and basename
/build/kati/func.cc
fcf1b7665c3613824237fc8086b97aed66cd7341 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement wildcard and shell
/build/kati/func.cc
284f3d1e604ebf568178e04e6a1fa4a66675547f 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement wildcard
/build/kati/func.cc
30b8e60d2c6871d3fa501262c0ea347a8d337bb6 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement join
/build/kati/func.cc
d5271452324666ca1342851f987231f13941f34f 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement all other text functions
/build/kati/func.cc
d87e59e27d65e7c3c00425f36bbaf7c91e81c6e7 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement sort
/build/kati/func.cc
00cc658846e0a980a1a6cfa25c3fda3662b4b912 17-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement findstring, filter, and filter-out
/build/kati/func.cc
37591ce8fffb4ebaf96c83223e93c3c6b9b04651 16-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement subst and strip
/build/kati/func.cc
2e6cbfc3e72abc242b87f338c540afb9708a1df5 16-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix patsubst.mk
/build/kati/func.cc
4f22f5c9402855277049e9e752043cef55e50290 16-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Add all stub functions
/build/kati/func.cc
8ee8c376f1fd3cbd96144b5a4e4976a629e35ac3 16-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Fix lineno handling
/build/kati/func.cc
9619b36d9d833d7b3ba77b8100944cdc9cc85de0 16-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] Implement $(warning) and $(error)
/build/kati/func.cc
776ca3085c44e6570813270df75278849c37d400 05-Jun-2015 Shinichiro Hamaji <shinichiro.hamaji@gmail.com> [C++] The first commit for C++ version

16 tests out of 169 are passing.
/build/kati/func.cc