Release Notes
[v0.0.31] - 2019-10-10
Features
- api:
- add CrossReferencesRequest.totals_method flag (#4024) (3940fde5)
- add build config to each related Anchor (#3738) (b8f01f6d)
- allow a semantic scope to be associated per decoration (#3707) (643cc854)
- add set of build configs per Corpus in CorpusRootsReply (#3572) (96cb400a)
- add build configurations per FileTree entry (#3523) (b5eddd52)
- add CrossReferencesRequest filter for build config (#3512) (cc9d2d66)
- cxx_common:
- support proto encoding of compilation units in kzips (#3940) (512fe0df)
- document and implement kythe metadata as proto (#3912) (b19a1745)
- Add ref imports edge field (#3465) (c9c6f6e5)
- cxx_extractor:
- use a toolchain for configuring cxx_extractor (#4030) (f1bed7e9)
- allow resolving symlinks when creating vname paths (#4009) (a5c4bc39)
- cxx_indexer:
- provide defines spans for functions (#3708) (8cd2434b)
- add tests and fix support for C++/proto metadata references (#3531) (dd8fe901)
- docker_extract: support selecting encoding for kzip generation (#3947) (154cec53)
- support package installation at extraction time to support system dependencies (#3641) (e7d15468)
- Use bazelisk in Bazel extractor Dockerfile extraction. (#3596) (94e70cde)
- add generic GCB Bazel extraction config (#3509) (abeff3e6)
- add Bazel extraction Docker image (#3499) (2af62973)
- extraction:
- allow details to be added to a kindex required input (#4017) (255fb53d)
- allow extractor to infer corpus from sources (#45) (bc7fc996)
- go extractor:
- add vnames.json support (#4069) (99cecdb6)
- allow specifying go +build tags (#3851) (b8b89d1f)
- go_indexer:
- emit parameter comments (#4134) (93518511)
- emit line comments when no preferred doc is present (#4132) (b3a278d5)
- add deprecation facts for go (#3692) (09f04420)
- use LOOKUP_BY_TYPED MarkedSource child for variables (#3689) (fc3ebd0f)
- overriding method type satisfies interface method type (#3635) (426b1bf1)
- add MarkedSource for tapp/tbuiltin nodes (#3631) (bbe98047)
- add receiver type to function types (#3627) (3313fb3b)
- convert variadic function parameters from slice (#3615) (0f638176)
- add typed edges for bindings (#3611) (7f70f99d)
- emit bindings for anonymous interface members (#3610) (d7af13c2)
- java_common:
- add forwarding method for setPathFactory (#4101) (699004c1)
- use the standard compilation unit digest for kzip (#4060) (e5ef23b2)
- implement standard compilation unit digesting (#4048) (55542254)
- rudimentary CompilationUnit FileSystem (#3928) (8cb8d6d2)
- add utility to convert schema proto enums (#3696) (c0b74290)
- java_indexer:
- Record @deprecated javadoc tags in the Java indexer (#2977) (84a77bf9)
- move path-based file manager config to base class (#4133) (831b73ec)
- command line option to use path-based file manager (#4122) (01858aba)
- Initial path-based JavaFileManager implementation (#4115) (800002ca)
- add typed edges for
this
/super
(#4058) (dceb969d, closes #4055) - add property/* edges for @AutoValue classes (#3993) (0abf28c9)
- add basic tests for java-9-10-11 features (#3898) (2139771c)
- emit refs to JVM graph for externally defined nodes (#3800) (0d7614ed)
- add receiver type to function types (#3628) (fe7aa759)
- add MarkedSources for function tapp nodes (#3601) (f36eceff)
- add MarkedSources for array/generic tapp nodes (#3561) (e2aaf23c)
- jdk_indexing: allow extracting only specific make targets (#3935) (2978be61)
- post_processing:
- support Riegeli Snappy compression (#4072) (a7631889)
- add Nodes.fromSource conversion utility (#3755) (03bdb570)
- allow nodes/anchors to be ranked (#3750) (466b7bc4)
- implement basic callers in PagedCrossReferences (#3712) (87f273d1)
- support reading input files from a directory (#3497) (e907832f)
- proto:
- Add standalone proto extractor (#21) (c1c53ce4)
- add extra_action and action_listener (#43) (956304df)
- emit deprecation tags for proto fields (#3677) (418a3d9a)
- proto plugin to embed metadata in C++ headers (#3511) (0d2ea56e)
- schema:
- embed metadata in schema.proto source file (#4020) (902b1344)
- add Java utility to convert Node/Entry protos (#3714) (19567cea)
- add schema proto representation of a Kythe Entry (#3704) (058565aa)
- serving:
- add wildcard node kind support to xrefs indirection (#3984) (2f8a5bcf)
- experimental support for xrefs indirection (#3980) (bfb2c24c)
- add build configs per corpus (#3580) (0292676f)
- add build configs to FileTree serving data (#3527) (448d46e8)
- textproto_indexer:
- add indexer for text-format protobuf (#39) (d9c96147)
- add standalone extractor for textproto (#35) (72cd0129)
- add library for parsing textproto schema comments (#31) (b6f38f05)
- support inline repeated field syntax (#46) (832e1583)
- add refs for schema comments (#53) (93e69912)
- tooling:
- implement (*riegeli.Writer).Position (#3919) (94637264)
- add --semantic_scopes flag to
kythe decor
command (#3719) (bd17d082) - add --build_config filter to ‘kythe xrefs’ command (#3588) (8cd01247)
- add --build_config filter to ‘kythe decor’ command (#3587) (9cae15ee)
- add KytheFS tool to mount index to filesystem (#3419) (cddcda7c)
- migrate kythe CLI to new filetree API (#3487) (59aee1e3)
- kzip can merge into the existing output file (#3679) (ea0f3de7)
- add kzip subcommand for creating trivial kzips (#3537) (dc839a1e)
- add function for merging multiple KzipInfos together (#4084) (e2202c5a)
- change Unit.Digest() to return hex string representation (#4044) (f81e09b3)
- thread encoding into kzip_extractor bazel rule (#4027) (3f81db7f)
- add filter subcommand to kzip tool (#3998) (7d4e7de4)
- add
kzip view
command (#3957) (5d4b4003) - support both proto and JSON encodings in Java for compilations in kzips. Also move kzip testdata to common location. (#3852) (4d86c48d)
- create permits specifying encoding (#3842) (18ad24ed)
- add support for encoding compilation units as proto and/or JSON in kzips. (#3836) (3643205e)
- add
info
command to kzip tool which returns count of compilation units and referenced corpus names. (#3840) (6f83e91f) - add option to read compilation units in parallel (#4096) (1db42c19)
- add proto output format to
kzip info
(#3991) (d32202eb) - use vfs to allow for changing filesystem impl (#3971) (cb882e9a)
- add more details and json output mode to
kzip info
(#3933) (09cb07d9) - allow complete specification of a compilation unit (#3542) (7f82fe42)
- allow embedding details messages in kzips (#3538) (d0255f56)
- typescript: Support AngularTemplateCompile mnemonic (#4105) (98808c0a)
- typescript_indexer:
- don't emit duplicate nodes for namespaces (#4062) (3abf05cf)
- print plugin names (#4061) (f4f15815)
- emit references to hops in imports (#3990) (e385c8c3)
- add minimal support for JSX (#3888) (c9f999d0)
- expose getSymbolName through IndexerHost (#3909) (6d55e1e0)
- add support for utf-16 offset lookup (#3908) (eae1ff81)
- add support for indexing literal properties (#3899) (b4d64007)
- define VName specification (#3783) (ca76e298)
- emit “aliases” edge on aliased types (#3870) (7dd02837)
- emit “overrides” edges for overridden methods (#3872) (ce043510)
- index export equals and import equals nodes (#3871) (1c54c8a1)
- add support for indexing module decls (#3873) (dd53f6b1)
- add xrefs for declarations in objects (#3864) (e7e41b67)
- reference modules in export statements (#3863) (f3eb65f1)
- pass module name creation logic to plugins (#3828) (5756795f)
- VName schema compliance for constructors (#3785) (cdee8bf8)
- Getter/Setter entries (#3784) (0e2dd884)
- add
defines
anchors for functions (#3775) (f03ecc89)
Bug Fixes
- bump nokogiri to 1.10.4 (#4007) (870a5830)
- update vulnerable outdated js-yaml NPM package (#3740) (b873a1c6)
- get toolchains for remote builds working correctly (#7) (b034a8f3)
- api: filter decoration overrides by desired build configs (#3739) (3f4ef51b)
- cxx_common:
- fix path_utils_test when tempdir is a symlink (#4022) (f71af3dd)
- update LLVM to r367622 (#3944) (1d7123f9)
- anticipate changes in Bison 3.3 syntax (#3513) (d14cb507)
- cxx_extractor:
- use the right compiler executable (#4032) (a2015717)
- better support cuda extractions (#3747) (2d7f89c6)
- include executable name in extracted arguments (#4023) (58a62498)
- Set cxx extractor kzip times to a constant (#4086) (642c9330)
- cxx_indexer:
- emit references to dependent names based on name, not location (#4097) (28cf259b)
- whitelist and test std::make_shared (#4059) (4016c5b3)
- allow protobuf metadata in .stubby.h files (#4004) (29cdef09)
- properly reference C++17 deduced templates (#3900) (69ef278c)
- normalize windows paths (#3742) (167786ac)
- insist that compilation units have working directories (#3716) (d3e059d1)
- always add . to the VFS (#3715) (a8e95930)
- use URI-friendly encoding for VName fields (#3705) (f9a7e299)
- use build_config when claiming implicit AST subtrees (#3619) (8868db03)
- attach build_config to file claim tokens (#3590) (05800883)
- cxx_verifier: fix MSAN error on use-of-uninitialized (#4010) (08fa1823)
- go extractor:
- fix invalid Details messages for packages (#4120) (426a9b0b)
- Change action go bazel extractor runs on (#4087) (27626173)
- -tags is space-separated, not comma (#3856) (c932970f)
- go_common: use nondeprecated zip file handle mod time (#4047) (b9e9c011)
- go_indexer:
- use only name for a named type's MarkedSource (#3850) (f363e506)
- handle overrides for structs in a other packages (#3606) (f3364504)
- always emit anchor for anon value types (#3605) (d97ca443)
- java:
- handle more null data from java (#4082) (e878b5f5)
- accept either JRE 8 or JRE 9 style classpath in test (#3972) (3ea7de6c)
- java_build: remove jvm_flags which complicate running on newer JDKs (#3955) (b4bdb395)
- java_common:
- normalize paths before looking them up (#4106) (d4155894)
- adjust case when getting default format (#4104) (64659661)
- add file digest as Path URI host (#3975) (2ead1aa4)
- allow resolving relative paths against CU working dir (#3937) (8050ceec)
- replace or remove JDK9+ methods (#3930) (b1810d84)
- java_extractor:
- include working directory in extracted proto (#4130) (bc363f87)
- and tests should use ambient langtools (#4053) (7f680e94)
- support missing -s in aspect extraction (#3986) (7609b970)
- deal with both kinds of Generated annotations (#3889) (048134fd)
- remove Option.D from compilation unit again (#3670) (8a0bdfda)
- use reflection to access/override JDK bits. (#3612) (72915498)
- Don't include time in kzips for java (#4085) (3c25f1a0)
- java_indexer:
- cast to base with asPath to support JDK8 (#4137) (1ab8b883)
- address part of #3459 by claiming comments for annotation lines (#3489) (bcddb97c)
- use Path to resolve metadata (fixes #4135) (#4136) (e03d4726)
- accept AutoValue.Builder interface definitions (#4054) (e12eee78)
- implement JDK9+ path-based FileObject methods (#3976) (bb70a39f)
- dynamically resolve JRE 9 bootclasspath (#3970) (f95e4395)
- emit and test type parameter MarkedSources (#3832) (7cb46e3f)
- emit MarkedSource for defined nodes referenced earlier in analysis (#3826) (e3d031cc)
- avoid NPE when referencing Java package in comment (#3803) (42f94049)
- only emit MarkedSource for defined symbols (#3792) (3079f619)
- only emit MarkedSource for defined symbols (#3788) (6bfb2f7a)
- box LOOKUP_BY_PARAM MarkedSources with text (#3632) (44771993)
- jdk_extractor: bazel runfiles no longer expect the workspace name (#4131) (ae19c938)
- pipeline: beam output path can contain a filesystem scheme (#3532) (eba6ff48)
- post_processing:
- split semantic callers within xrefs group (#3776) (87e1e2ed, closes #3768)
- convert DirectoryReply to FileDirectory for serving data (#3604) (0ef9b748)
- make pipeline more tolerant to some errors (#3490) (dc33424b)
- proto:
- include deprecation tags for messages, enums and enum values. (#3822) (c602555d)
- link BuildDetails proto (#49) (e9b68f17)
- proto fields have subkind “field” (#4098) (ac6cb14b)
- empty deprecation message and additional test case (#3678) (d56bc1d3)
- skip synthesized map entry types (#26) (c23d4d52)
- close file after use in SourceTree.Read() (#18) (da1c9cc0)
- extract test files in TEST_TMPDIR instead of runfiles dir (#29) (f94a1299)
- serving:
- properly return lookup errors (#3764) (d5c0e4ec)
- tests:
- make proto/textproto tests not rely on
jq
(#3967) (28986284) - remove deadline option from proto testdata (#8) (7f2f889d)
- textproto_indexer:
- continue analysis even if schema comments are invalid (#3859) (07e5eda4)
- handle relative paths correctly in textproto and proto extractors (#3694) (dbaa0a8b)
- implement and test repeated extension fields (#50) (e658b1cb)
- improve error handling around optionals (#42) (24455b8a)
- tooling:
- do not consider the empty kzip an error (#4111) (7dc45432)
- check error before result (#4110) (3207a48f)
- use uncompressed riegeli block size when decompressing (#3997) (a6040e85)
- correct chunk position starting a block boundary (#3782) (341fd2cf)
- fix #3246 (#3737) (c2d7ee67)
- allow sample UI dependencies to be disabled (#3717) (4c687714)
- migrate ‘kythe ls’ filters from deprecated FileTree API (#3566) (5c3e9c27)
- migrate kythefs from deprecated FileTree API (#3564) (3ffd2597)
- populate KzipInfo.total_files in info.go (#4018) (d1b99218)
- make default kzip encodings explicit (#4012) (b526e547)
- use proper incantation so testdata still found on import (#3846) (06f9aa46)
- EncodingFlag fully implements flag.Getter and flag.Value (#3843) (55cf0dd2)
- determine unit corpus and file language more robustly (#4095) (c4a354e8)
- implement flag.Getter for all flat types (#3544) (a47b32ed)
- Don't include kzip creation time in kzip (#4083) (5092d9d5)
- typescript_indexer:
- add anon signature part for function expressions (#3880) (b805d3a9)
- don't throw on unfound module path (#3882) (e8f2c5ec)
- do not give anonymous names to binding patterns (#3857) (f4fa3d58)
- Do not name scopes created by rvalues (#3841) (4e6d241f, closes #3834)
- differentiate signatures of static and instance members (#3819) (74e1e4a2)
- point class type and values at the class name (#3835) (35f41ccd)
- remove deprecated childof edge from anchor to file (#3724) (5533e861)
- properly lookup file VNames (#3686) (34369679)
- obey VNames that come in from the input (#3467) (a2bc9861)
Performance
- post_processing: use heap.Fix in disksort (#4063) (3cfd3b3b)
[v0.0.30] - 2019-02-07
Features
- api:
- add DecorationsRequest filter for build config (#3449) (2480a935)
- structured entries in DirectoryReply (#3425) (53e3a097)
- build_details: add a build_config field to BuildDetails proto (#3303) (ed5ce4d5)
- columnar:
- add Seek method to keyvalue.Iterator interface (#3211) (753c91ae)
- support build_config filtering of columnar decorations (#3450) (810c9211)
- add definitions for related node xrefs (#3228) (52a635eb)
- handle columnar decl/def CrossReferences (#3204) (eec113df)
- cxx_indexer:
- copy in utf8 line index utils (#3276) (93e69d29)
- support emitting USRs for other kinds of declarations (#3268) (4d705cf9)
- Support adding Clang USRs to the graph (#3226) (15535c65)
- include build/config fact on anchors when present (#3437) (96c7d6bc)
- Add support for member pointers and uses of them a… (#3258) (a83e856d)
- read all compilations from a kzip file (#3232) (3bd99ee7)
- gotool_extractor:
- canonicalize corpus names as package/repo roots (#3377) (f2630cbc)
- add Docker image for Go extractor (#3340) (f1ef34b5)
- use Go tool to extract package data (#3338) (a97f5c0e)
- java_indexer: emit implicit anchors for default constructors (#3317) (90d1abfe)
- objc_indexer:
- support marked source for @property (#3320) (b79d49bd)
- marked source for category methods (#3311) (414bdf2d)
- post_processing:
- limit disksort memory by custom Size method (#3201) (7919fcf1)
- pass-through build config in pipeline (#3444) (59be834f)
- add build configuration to anchors in serving data (#3440) (e3c7fa18)
- add diagnostics to file decorations (#3277) (0cd5dfca)
- add support for Riegeli input files (#3223) (4035f931)
- emit columnar callers (#3220) (e1fe01a6)
- allow
write_tables
to compact output LevelDB (#3215) (2895c1c7)
- sample-web-ui:
- add link to related node definitions (#3227) (854ab489)
- display callers in xrefs panel (#3221) (5c563dc7)
- tools:
- entrystream: support aggregating entries into an EntrySet (#3363) (e1b38f50)
- kindex: support reading kzip files (#3293) (2be0c1f0)
- release:
- add extract_kzip tool to release archive (#3454) (3ab6111d)
- add protobuf indexer to release (#3358) (ae537104)
Bug Fixes
- api: properly marshal protos with jsonpb (#3424) (358b4060)
- cxx_common:
- add enumerator for kDocUri fact (#3378) (4b8925e0)
- Add a dependency for strict dependency checking (#3269) (5a5a230e)
- cxx_extractor: segfault when given nonexistent file (#3234) (6c0fef7a)
- cxx_indexer:
- set CompilationUnit.source_file for unpacked input (#3254) (35706fb1)
- don't crash on empty function/enum bodies (#3281) (f06d335d)
- gotool_extractor: when no global corpus is given, use package's corpus for each file (#3290) (6bc18f57)
- java_common: allow analyzers to throw InterruptedExceptions (#3330) (01617d9c)
- java_indexer:
- make workaround source compatible with JDK 11 (#3275) (7284ac2c)
- ensure static import refs are accessible (#3305) (c453a319)
- ensure static import refs are static (#3294) (0f80fe48)
- do not close System.out after first analysis (#3199) (e2af342f)
- jvm_indexer: prepare code using ASM for Java 11 (#3214) (94810956)
- post_processing: remove anchors from edge/xref relations (#3198) (b81ef3af)
[v0.0.29] - 2018-10-29
Added
- KZip support has been added to all core extractors/indexers
cxx_indexer
: define a deprecated tag and use it for C++ (#2982)java_indexer
: analyze default annotation values (#3004)
Changed
java_indexer
: do not include Symbol modifiers in hashes (#3139)javac_extractor
: migrate javac_extractor to use ambient langtools (#3093)verifier
: recover file VNames using file content; reorder singleton checking (#3166)
Deprecated
- Index packs and
.kindex
files have been deprecated in favor of .kzip
files
Fixed
go_indexer
: mark result parameters as part of the TYPE in MarkedSource (#3021)java_indexer
: avoid NPE with erroneous compilations missing identifier Symbols (#3007)java_indexer
: guard against null inferred lambda types (#3132)java_indexer
: support JDK 11 API change (#3149)javac_extractor
: ignore JDK 9 modules as well as JDK 8 jars (#2889)javac_extractor
: pass through -processorpath; don't delete gensrcdir early (#3063)
[v0.0.28] - 2018-07-18
Added
write_tables
: --experimental_beam_pipeline
runs the post-processor as an Apache Beam pipeline- Go: support extracting/analyzing packages with
vendor/
dirs go_indexer
: add --continue
flag to log errors without halting analysisviewindex
: add --file flag to print a single file's contentsentrystream
: support for reading/writing Riegeli record files- First release of the ExploreService APIs
Deprecated
entrystream
: --read_json
/--write_json
are marked to be replaced by --read_format=json
/--write_format=json
Fixed
- Java indexer: search for ClassSymbol in all Java 9 modules
- Java/JVM indexers: obtain JVM (a.k.a. “external”) names in a principled way
[v0.0.27] - 2018-07-01
Due to the period of time between this release and v0.0.26, many relevant changes and fixes may not appear in the following list. For a complete list of changes, please check the commit logs: https://github.com/kythe/kythe/compare/v0.0.26...v0.0.27
Added
- First release of Go indexer and Go extractors.
- Objective C is now supported in the C++ indexer.
- identifier.proto: adds a new
IdentifierService
API. - Runtime plugins can be added to the Java indexer.
Changed
- Remove gRPC server and client code.
- Schema:
- Anchors no longer have
childof
edges to their parent file
. - Anchor nodes must share their
path
, root
, and corpus
VName
components with their parent file
.
- Format strings have been replaced by the
MarkedSource
protobuf message. - C++ analysis:
- Included files are referenced by the
ref/file
edge. code
facts (containing MarkedSource
protos) are emitted.- Better support for C++11, 14, and 17.
- Limited CUDA support.
- Improvements to indexing and rendering of documentation.
- Added a plugin for indexing proto fields in certain string literals.
- Type ranges for builtin structural types are no longer destructured (
T*
is now [T]*
, not [[T]*]
). - Decoration of builtin types can be controlled with
--emit_anchors_on_builtins
. - Namespaces are never
define
d, only ref
d. - Old-style
name
nodes removed. - The extractor now captures more build state, enabling support for
__has_include
anchor
s involved in completes
edges now contain their targets mixed with their signatures, making each completion relationship unique.- Support for indexing uses of
make_unique
et al as direct references to the relevant constructor. - Template instantiations can be aliased together with
--experimental_alias_template_instantiations
, which significantly decreases output size at the expense of lower fidelity.
- Java analysis:
name
nodes are now defined as JVM binary names.diagnostic
nodes are emitted on errors.code
facts (MarkedSource
protos) are emitted.- Add callgraph edges for constructors.
- Non-member classes are now
childof
their enclosing method. - Local variables are now
childof
their enclosing method. - Blame calls in static initializers on the enclosing class.
- Emit references for all matching members of a static import.
- Reference
abs
nodes for generic classes instead of their record
nodes. - Emit data for annotation arguments.
- Emit package relations from
package-info.java
files.
- Protocol Buffers:
- analysis.proto: add revision and build ID to AnalysisRequest.
- analysis.proto: add AnalysisResult summary to AnalysisOutput.
- analysis.proto: remove
revision
from CompilationUnit. - graph.proto: new location of the GraphService API
- xref.proto: remove
DecorationsReply.Reference.source_ticket
. - xref.proto: add
Diagnostic
messages to DecorationsReply
. - xref.proto: replace
Location.Point
pairs with common.Span
. - xref.proto: by default, elide snippets from xrefs/decor replies.
- xref.proto: replace
Printable
formats with MarkedSource
. - xref.proto: allow filtering related nodes in the xrefs reply.
- xref.proto: optionally return documentation children.
- xref.proto: return target definitions with overrides.
[v0.0.26] - 2016-11-11
Changed
- Nodes and Edges API calls have been moved from XRefService to GraphService.
[v0.0.25] - 2016-10-28
Changed
- Replace google.golang.org/cloud dependencies with cloud.google.com/go
- Update required version of Go from 1.6 to 1.7
[v0.0.24] - 2016-08-16
Fixed
- write_tables now tolerates nodes with no facts. Previously it could sometimes crash if this occurred.
[v0.0.23] - 2016-07-28
Changed
- CrossReferences API: hide signature generation behind feature flag
- Java indexer: emit
ref/imports
anchors for imported symbols
Added
- Java indexer: emit basic
format
facts
[v0.0.22] - 2016-07-20
Changed
- Schema:
callable
nodes and callableas
edges have been removed. xrefs.CrossReferences
: change Anchors in the reply to RelatedAnchors- Removed search API
[v0.0.21] - 2016-05-12
Changed
- xrefs service: replace most repeated fields with maps
- xrefs service: add
ordinal
field to each EdgeSet edge xrefs.CrossReferences
: group declarations/definitions for incomplete nodes- C++ indexer:
--flush_after_each_entry
now defaults to true
Added
xrefs.Decorations
: add experimental target_definitions
switch- kythe tool: add
--graphviz
output flag to edges
subcommand - kythe tool: add
--target_definitions
switch to decor
subcommand
Fixed
write_tables
: correctly handle nodes with missing facts
- Javac extractor: add processors registered in META-INF/services
- javac-wrapper.sh: prepend bootclasspath jar to use packaged javac tools
[v0.0.20] - 2016-03-03
Fixed
- Java indexer: reduce redundant AST traversals causing large slowdowns
[v0.0.19] - 2016-02-26
Changed
- C++ extractor:
KYTHE_ROOT_DIRECTORY
no longer changes the working directory during extraction, but does still change the root for path normalization. http_server
: ensure the given --serving_table
exists (do not create, if missing)- Java indexer: fixes/tests for interfaces, which now have
extends
edges kythe
tool: display subkinds for related nodes in xrefs subcommand
Added
entrystream
: add --unique
flagwrite_tables
: add --entries
flag
[v0.0.18] - 2016-02-11
Changed
- C++ indexer:
--ignore_unimplemented
now defaults to true
- Java indexer: emit single anchor for package in qualified identifiers
Added
- Java indexer: add callgraph edges
- Java indexer: add Java 8 member reference support
[v0.0.17] - 2015-12-16
Added
write_tables
: produce serving data for xrefs.CrossReferences methodwrite_tables
: add flags to tweak performance--compress_shards
: determines whether intermediate data written to disk should be compressed--max_shard_size
: maximum number of elements (edges, decoration fragments, etc.) to keep in-memory before flushing an intermediary data shard to disk--shard_io_buffer
: size of the reading/writing buffers for the intermediary data shards
[v0.0.16] - 2015-12-08
Changed
- Denormalize the serving table format
- xrefs.Decorations: only return Reference targets in DecorationsReply.Nodes
- Use proto3 JSON mapping for web requests: https://developers.google.com/protocol-buffers/docs/proto3#json
- Java indexer: report error when indexing from compilation's source root
- Consistently use corpus root relative paths in filetree API
- Java, C++ indexer: ensure file node VNames to be schema compliant
- Schema: File nodes should no longer have the
language
VName field set
Added
- Java indexer: emit (possibly multi-line) snippets over entire surrounding statement
- Java indexer: emit class node for static imports
Fixed
- Java extractor: correctly parse @file arguments using javac CommandLine parser
- Java extractor: correctly parse/load -processor classes
- xrefs.Edges: correctly return empty page_token on last page (when filtering by edge kinds)
[v0.0.15] - 2015-10-13
Changed
- Java 8 is required for the Java extractor/indexer
Fixed
write_tables
: don't crash when given a node without any edges- Java extractor: ensure output directory exists before writing kindex
[v0.0.14] - 2015-10-08
Fixed
- Bazel Java extractor: filter out Bazel-specific flags
- Java extractor/indexer: filter all unsupported options before yielding to the compiler
[v0.0.13] - 2015-09-17
Added
- Java indexer: add
ref/doc
anchors for simple class references in JavaDoc - Java indexer: emit JavaDoc comments more consistently; emit enum documentation
[v0.0.12] - 2015-09-10
Changed
- C++ indexer: rename
/kythe/edge/defines
to /kythe/edge/defines/binding
- Java extractor: change failure to warning on detection of non-java sources
- Java indexer:
defines
anchors span an entire class/method/var definition (instead of just their identifier; see below for defines/binding
anchors) - Add public protocol buffer API/message definitions
Added
- Java indexer:
ref
anchors span import packages - Java indexer:
defines/binding
anchors span a definition's identifier (identical behavior to previous defines
anchors) http_server
: add --http_allow_origin
flag that adds the Access-Control-Allow-Origin
header to each HTTP response
[v0.0.11] - 2015-09-01
Added
- Java indexer: name node support for array types, builtins, files, and generics
Fixed
- Java indexer: stop an exception from being thrown when a line contains multiple comments
[v0.0.10] - 2015-08-31
Added
http_server
: support TLS HTTP2 server interface- Java indexer: broader
name
node coverage - Java indexer: add anchors for method/field/class definition comments
write_table
: add --max_edge_page_size
flag to control the sizes of each PagedEdgeSet and EdgePage written to the output table
Fixed
entrystream
: prevent panic when given --entrysets
flag
[v0.0.9] - 2015-08-25
Changed
- xrefs.Decorations: nodes will not be populated unless given a fact filter
- xrefs.Decorations: each reference has its associated anchor start/end byte offsets
- Schema: loosened restrictions on VNames to permit hashing
Added
- dedup_stream: add
--cache_size
flag to limit memory usage - C++ indexer: hash VNames whenever permitted to reduce output size
Fixed
- write_tables: avoid deadlock in case of errors
[v0.0.8] - 2015-07-27
Added
Fixed
- write_tables: ensure that all edges are scanned for FileDecorations
- kythe refs command: normalize locations within dirty buffer, if given one
[v0.0.7] - 2015-07-16
Changed
- Dependencies: updated minimum LLVM revision. Run tools/modules/update.sh.
- C++ indexer: index definitions and references to member variables.
- kwazthis: replace
--ignore_local_repo
behavior with --local_repo=NONE
Added
- kwazthis: if found, automatically send local file as
--dirty_buffer
- kwazthis: return
/kythe/edge/typed
target ticket for each node
[v0.0.6] - 2015-07-09
Added
- kwazthis: allow
--line
and --column
info in place of a byte --offset
- kwazthis: the
--api
flag can now handle a local path to a serving table
Fixed
- Java indexer: don't generate anchors for implicit constructors
[v0.0.5] - 2015-07-01
Added
- Bazel
extra_action
extractors for C++ and Java - Implementation of DecorationsRequest.dirty_buffer in xrefs serving table
[v0.0.4] - 2015-07-24
Changed
kythe
tool: merge --serving_table
flag into --api
flag
Fixed
- Allow empty requests in
http_server
's /corpusRoots
handler - Java extractor: correctly handle symlinks in KYTHE_ROOT_DIRECTORY
[v0.0.3] - 2015-07-16
Changed
- Go binaries no longer require shared libraries for libsnappy or libleveldb
- kythe tool:
--log_requests
global flag - Java indexer:
--print_statistics
flag
[v0.0.2] - 2015-06-05
Changed
- optimized binaries
- more useful CLI
--help
messages - remove sqlite3 GraphStore support
- kwazthis: list known definition locations for each node
- Java indexer: emit actual nodes for JDK classes
[v0.0.1] - 2015-05-20
Initial release
[Unreleased] https://github.com/kythe/kythe/compare/v0.0.31...HEAD [v0.0.31] https://github.com/kythe/kythe/compare/v0.0.30...v0.0.31 [v0.0.30] https://github.com/kythe/kythe/compare/v0.0.29...v0.0.30 [v0.0.29] https://github.com/kythe/kythe/compare/v0.0.28...v0.0.29 [v0.0.28]: https://github.com/kythe/kythe/compare/v0.0.27...v0.0.28 [v0.0.27]: https://github.com/kythe/kythe/compare/v0.0.26...v0.0.27 [v0.0.26]: https://github.com/kythe/kythe/compare/v0.0.25...v0.0.26 [v0.0.25]: https://github.com/kythe/kythe/compare/v0.0.24...v0.0.25 [v0.0.24]: https://github.com/kythe/kythe/compare/v0.0.23...v0.0.24 [v0.0.23]: https://github.com/kythe/kythe/compare/v0.0.22...v0.0.23 [v0.0.22]: https://github.com/kythe/kythe/compare/v0.0.21...v0.0.22 [v0.0.21]: https://github.com/kythe/kythe/compare/v0.0.20...v0.0.21 [v0.0.20]: https://github.com/kythe/kythe/compare/v0.0.19...v0.0.20 [v0.0.19]: https://github.com/kythe/kythe/compare/v0.0.18...v0.0.19 [v0.0.18]: https://github.com/kythe/kythe/compare/v0.0.17...v0.0.18 [v0.0.17]: https://github.com/kythe/kythe/compare/v0.0.16...v0.0.17 [v0.0.16]: https://github.com/kythe/kythe/compare/v0.0.15...v0.0.16 [v0.0.15]: https://github.com/kythe/kythe/compare/v0.0.14...v0.0.15 [v0.0.14]: https://github.com/kythe/kythe/compare/v0.0.13...v0.0.14 [v0.0.13]: https://github.com/kythe/kythe/compare/v0.0.12...v0.0.13 [v0.0.12]: https://github.com/kythe/kythe/compare/v0.0.11...v0.0.12 [v0.0.11]: https://github.com/kythe/kythe/compare/v0.0.10...v0.0.11 [v0.0.10]: https://github.com/kythe/kythe/compare/v0.0.9...v0.0.10 [v0.0.9]: https://github.com/kythe/kythe/compare/v0.0.8...v0.0.9 [v0.0.8]: https://github.com/kythe/kythe/compare/v0.0.7...v0.0.8 [v0.0.7]: https://github.com/kythe/kythe/compare/v0.0.6...v0.0.7 [v0.0.6]: https://github.com/kythe/kythe/compare/v0.0.5...v0.0.6 [v0.0.5]: https://github.com/kythe/kythe/compare/v0.0.4...v0.0.5 [v0.0.4]: https://github.com/kythe/kythe/compare/v0.0.3...v0.0.4 [v0.0.3]: https://github.com/kythe/kythe/compare/v0.0.2...v0.0.3 [v0.0.2]: https://github.com/kythe/kythe/compare/v0.0.1...v0.0.2 [v0.0.1]: https://github.com/kythe/kythe/compare/d3b7a50...v0.0.1