profile
viewpoint

creachadair/imath 76

Arbitrary precision integer and rational arithmetic library

creachadair/bitstream 1

A Go package to support reading and writing of variable-width binary values to or from a stream of bytes.

creachadair/cache 1

Packages that implement string-keyed caching of byte buffers.

creachadair/cityhash 1

A straightforward transliteration of the CityHash non-cryptographic hash algorithm from C++ into Go. Based on https://github.com/google/cityhash

creachadair/efusiva 1

A read-only FUSE filesystem that mounts siva archives

creachadair/actions 0

Experiments with running Docker in CI actions.

creachadair/ansi 0

A library for manipulating ANSI escape codes in Go.

creachadair/atomicfile 0

All-or-nothing file replacement using atomic renames.

creachadair/badgerstore 0

An implementation of the blob.Store interface over BadgerDB.

creachadair/blitzmail 0

A client implementation of the BlitzMail protocol.

delete tag creachadair/snapback

delete tag : v0.0.30

delete time in a day

delete tag creachadair/snapback

delete tag : v0.0.29

delete time in a day

delete tag creachadair/snapback

delete tag : v0.0.28

delete time in a day

delete tag creachadair/snapback

delete tag : v0.0.27

delete time in a day

delete tag creachadair/snapback

delete tag : v0.0.26

delete time in a day

delete tag creachadair/snapback

delete tag : v0.0.25

delete time in a day

created tagcreachadair/snapback

tagv0.0.49

A tarsnap backup script written in Go.

created time in a day

push eventcreachadair/snapback

M. J. Fromberger

commit sha caaa338e203b747fe3ba9dfa605db259ed6a45f9

Do not force verbosity on a dry-run prune. Now that -vv is available, the caller can use it to get the verbose output, instead of having to edit the config file.

view details

push time in a day

push eventcreachadair/go-paths

M. J. Fromberger

commit sha a8f273c22302d61938c67416bf19434c5c717687

Fix a whitespace glitch.

view details

push time in a day

CommitCommentEvent

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha a9674ceb78a6e2a95754cb15e21d2eaae5e248f8

Update module dependencies.

view details

push time in a day

push eventcreachadair/misctools

M. J. Fromberger

commit sha 6df4d458d0750ef890264ff5d62a287f5f8e80ff

Move paths to its own repository. New address: github.com/creachadair/go-paths

view details

push time in a day

push eventcreachadair/misctools

M. J. Fromberger

commit sha 5739052ef98e2e52a02031c991022a648c921433

Move git-go command to its own repository. New address: github.com/creachadair/git-go

view details

M. J. Fromberger

commit sha b39b0e14d68cafe6790a5b2bf1fccfa438614090

Move paths to its own repository. New address: github.com/creachadair/git-go

view details

push time in a day

create barnchcreachadair/go-paths

branch : master

created branch time in a day

created repositorycreachadair/go-paths

Utilities for handling file paths.

created time in a day

push eventcreachadair/kythe

Wyatt Calandro

commit sha 545968b919f76a41086eb7db089597dabcf13917

feat(rust): Unify Kythe Rust dependencies (#4611) This PR places all of the Kythe Rust dependencies in one directory: `//kythe/rust/cargo`. Previously, each component had its own directory that contained the component's dependencies. However, this quickly became a messy system, leading to file bloat and dependency duplication. This folder can only hold one version of each dependency, though. If a situation arises where a Kythe crate needs a different version of a dependency than what is in this directory, that version can be placed in the crate's directory instead.

view details

Filip Filmar

commit sha beee4f6f438ca8018f94bd48179401dd57f0b887

KZIP Writer C API (and Rust FFI) (#4608) * feat(rust): Adds a C API for the kzip writer This will allow me to reuse the C++ kzip writing code for the rust indexer instead of redoing that work in rust. Issue #4606 * Renames the 'status' library Somewhat surprisingly -- if there are two libraries in the global namespace that have the same name, bazel does not disambiguate them, and an attempt to link them will fail. Not sure why, but that's what happens. * fixup: handled review comments Simplified and cleared up issues raised during code review. * Works around the -fPIC issue for rust Rust binaries are compiled with -fPIC by default, and this fights with bazel's default of -fno-pic when using `-c opt` mode. This has caused the compilation to fail. After some running around with hair on fire, I found https://github.com/bazelbuild/rules_rust/issues/118, which seems to work around the issue. I think in the long run, rules_rust should handle this automagically for the users. * Document no NUL byte at the end of results

view details

Wyatt Calandro

commit sha 2dba4dd904cbbfff5a2ff3dcde5f7b5b930d23d5

feat(rust): Create Rust indexer CLI (#4605) This PR creates a CLI for running the Rust indexer. It accepts a path to a kzip and extracts the files from that kzip to a temporary directory using the included CompilationUnit. The `index_cu` function in the indexer library will be implemented in the next PR

view details

Shahms King

commit sha 9e12b4a44e7361c7c2e6a622cd32f2ad65e3a0c1

fix(cxx_indexer): report errors more directly rather than stderr (#4613)

view details

Shahms King

commit sha 15cea9b3825b65d416004946778181598f54cd6a

fix(java_indexer): workaround JDK bug on Java 11 (#4614) * fix(java_indexer): add flag to workaround JDK bug on Java 11 The --ignore_typesig_exceptions helps the indexer to continue even if hitting JDK-8212750. * Remove flag, make skipping behavior the default. * chore: run google-java-format * chore: downgrade spelling errors * chore: fix JSON trailing comma * chore: allow skipping lint on commit * chore: never attmept to apply patches in pre-push Co-authored-by: Robin Palotai <robin.palotai@transferwise.com>

view details

Wyatt Calandro

commit sha a0f1f67bdbd61698bbfc78dc16b8ae475478e64a

feat(rust): Add Bazel rule for running Rust indexer tests (#4612) This PR creates a Bazel rule for running tests on the Rust indexer using the Kythe verifier. It is based on the existing `go_indexer_test` rule, and utilizes the `go_verifier_test` macro. This PR also includes a small Rust file to sanity-test the rule until the indexer starts emitting data.

view details

Wyatt Calandro

commit sha 297d44405b7b33e9b5e1810c8e504e9791e148fd

fix(rust): Ensure that Rust extractor creates a top-level folder (#4616) This PR fixes a bug in the Rust extractor where a top-level folder was not being created in the kzips, causing them to be invalid. The extractor will now create a top-level folder named "root". The indexer has been fixed to properly detect the root folder name. This PR adds an exclusion for `kythe/java/com/google/devtools/kythe/platform/java/helpers/SignatureGenerator.java` from the arcanist spellchecker. This prevents the linter from failing due to a false-positive.

view details

Mina Toma

commit sha 7d6aa9de0e65c0acc232a951df3b788100f720c8

Add web UI manual build note (#4603)

view details

Xùdōng Yáng

commit sha 72f7c2146c5ed26da2b09f6e1a9fbf9f2802a08f

Remove deprecated flag from bazelrc (#4618) --experimental_allow_incremental_repository_updates has been deleted in https://github.com/bazelbuild/bazel/commit/fdf10c34c82c563fb7fc7f262de32e1f7af59e2d

view details

Cody Schroeder

commit sha c6896459b1582ac0e4ecced83c35db7b4a2a2d28

build: add stub bzl_library rules (#4619)

view details

Justin Buchanan

commit sha 573ffff49ea75ca6c859da72046e1a6fe1d8d63a

feat(textproto): index enum values (#4615)

view details

Cody Schroeder

commit sha 629e69ad156e72c65195628034c1fdfa16a2937f

chore: cleanup bzl lint errors (#4620)

view details

Cody Schroeder

commit sha 88c36a096254823ae72895439511d1b365fb88e1

fix(serving): turn diffmatchpatch panics into internal errors (#4621)

view details

Shahms King

commit sha bcdc8e9df40a540ca4e04c75f95f83b0950c264b

fix(cxx_indexer): handle null init expr (#4622)

view details

Wyatt Calandro

commit sha b2876116a9f2795569e51f0e128ce603ce94c997

feat(rust): Support emitting function definitions (#4617) This PR completes the foundation of the Rust indexer and adds support for emitting package nodes, file nodes, and function definitions (with anchor and documentation nodes)

view details

Shahms King

commit sha f1f9a814c3b3c07f5343623569d56592a0cb290e

fix(schema): document the use of special spans for implicit modules (#4625) * fix(schema): document the use of special spans for implicit modules * fix(schema): clarify wording and use defines edge

view details

Justin Buchanan

commit sha cd57d5fd2b30d95b74ca853f1aa445ef1903129a

chore(proto_indexer): remove unused FileVNameGenerator (#4627) The FileVNameGenerator only produces useful VName lookups if given a vname config file or if other defaults are set. In this case it was just being used empty. Because the proto indexer only needs file vnames for .proto files and these all have vnames specified in the compilation unit, there isn't need for other configuration. In the case that a proto is referenced, but not in the compilation unit, an empty vname would be used. This shouldn't happen though because the proto parser itself would fail and the indexing code wouldn't get run. We could consider changing the lookup functions to return a StatusOr to handle that case better.

view details

Shahms King

commit sha 0a500b8f0a55f177919436cb5311a3bcb41e2d88

fix(schema): add defines/implicit and examples (#4628) * fix(schema): add defines/implicit and examples * chore: use clike language for TS as it lacks Bazel binary * chore: fix whitespace

view details

zrlk

commit sha 0a700ac06fb17b7c64213692d545e8e76aa18414

fix(cxx_indexer): avoid an assert check in Clang, silence errors (#4631) For some reason, in recent versions of Clang, integer template arguments (when fed into Sema as we do in MarkedSource) reach an assert that fails. To avoid tripping the assert, this PR stops trying to infer information about default template arguments if it encounters an integer template argument. This PR also disables diagnostics while inferring which arguments are defaults. Previously, the indexer would report spurious diagnostics that were raised during inference.

view details

Cody Schroeder

commit sha d7097f533d374d026c6bc8257b24e0c52268a4aa

chore: extract schema node kind/subkind methods (#4632)

view details

push time in 2 days

push eventcreachadair/git-go

M. J. Fromberger

commit sha 4b32c80b921891339b25aff1dc403f1ed9bdc3b0

Add a warning about code quality.

view details

push time in 2 days

push eventcreachadair/git-go

M. J. Fromberger

commit sha 7bbc4041995b60d7c3ceac86ebce57aae71cac77

Add a README.md file.

view details

push time in 2 days

push eventcreachadair/git-go

M. J. Fromberger

commit sha 129ac8486efdebe47dbdaf07a195b87a4868d852

Add go.mod.

view details

M. J. Fromberger

commit sha 903cad8bd146d780af3a463a07cc85a7d40db865

Add LICENSE file and comments.

view details

push time in 2 days

create barnchcreachadair/git-go

branch : master

created branch time in 2 days

created repositorycreachadair/git-go

A git subcommand for Go development.

created time in 2 days

push eventcreachadair/misctools

M. J. Fromberger

commit sha 3a4d8a60fc13baad0f598283176293aeaed08a09

git-go: add install-tools subcommand.

view details

push time in 2 days

push eventcreachadair/mazegen

M. J. Fromberger

commit sha cc8efdc465859574589f1d53461e1fcfb473cfd7

Format code. No functional changes intended. - Remove folding marks - clang-format --style=Google -i *.h *.c

view details

push time in 3 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 36a717fa6eea27741455ca24de4a34fb52de1d50

Default TMPDIR to /tmp.

view details

push time in 4 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 77c001ee2c6f6ab355fef67c11851889ef3b96bb

Clarify the semantics of FindPath.

view details

push time in 6 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha eafb917c4a7a8b3e1ba581b692e7f0e2b986feab

Restore the dropped -u flag.

view details

push time in 7 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha d9e7eaee3d2b7db09ce648617832bef05af4d968

Update README. Fix the second set of update instructions.

view details

push time in 7 days

push eventcreachadair/taskgroup

M. J. Fromberger

commit sha a6b677cb92da0168248588afb213bc86734a6ad0

Add a presubmit workflow.

view details

push time in 8 days

push eventcreachadair/atomicfile

M. J. Fromberger

commit sha c05ee9ecbefea7b56221e95bc5285ab2d5a5203f

Add a presubmit workflow.

view details

push time in 8 days

push eventcreachadair/otp

M. J. Fromberger

commit sha 952ca239cd25b050e71139c633a7bba2832f2c6b

Revert "Add an LSIF indexing action on push to master." This reverts commit 5ba5d2ffb3d96f4401dc64a41f69d66c4f6d503d.

view details

M. J. Fromberger

commit sha 180a5fba088beca29e72a4b9364e74119e227add

Add a presubmit workflow.

view details

push time in 8 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 2715c1e2d8fefb2c2d10fa7537b892735682d485

Update staticcheck to 2020.1.5.

view details

push time in 8 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha f8f05836bf6d6298dc37cb1ed74a948508055cdb

Fix a type reference in doc.go.

view details

push time in 8 days

created tagcreachadair/snapback

tagv0.0.48

A tarsnap backup script written in Go.

created time in 8 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 5be881331ccd1f64cbea54d050fa01165799f871

Disable GOPROXY during updates. The default Go proxy lags at discovering the latest tag. This is fine at steady-state, but means that new releases can't necessarily be fetched in a clean way when a tag is published. Disable the proxy explicitly when serving the -update flag to force the tool to check GitHub.

view details

push time in 8 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 8f2255c76cd40065cd206198ca922f493edd4891

Add -vv flag for extra logging.

view details

push time in 8 days

created tagcreachadair/snapback

tagv0.0.47

A tarsnap backup script written in Go.

created time in 8 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 3cbf9e0699690cb0effa2ca81c546a0c2de8b4d8

Update README.

view details

M. J. Fromberger

commit sha 33ab903d509d06d6a6ae7f937b75ff44d0cbe286

Fix a comment typo.

view details

push time in 9 days

push eventcreachadair/tarsnap

M. J. Fromberger

commit sha 1c23aa3ab2657fb7a75d96f3e713a72d62144e52

Add a README file.

view details

push time in 9 days

created tagcreachadair/snapback

tagv0.0.46

A tarsnap backup script written in Go.

created time in 10 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 23e37e23a7f6b923bb0f01d6d4ed13b028cc5d0a

Print elapsed time before auto-pruning.

view details

M. J. Fromberger

commit sha 7f22cec1a7cdd48d3d55c02dec7e06fa44ca381c

Add logging for auto-prune checks.

view details

push time in 10 days

push eventcreachadair/kythe

Shahms King

commit sha 89f2046b2f053400f6185351f1d6b84c1343b026

chore: update TS deps (#4596) * chore: update TS deps * chore: pin typescript version to ~3.8

view details

Wyatt Calandro

commit sha 9e316b15da8fb214869dde0d18d9350fb340ab0b

fix: Clean up old Rust tools (#4600) This PR remove old tools from the previous Rust implementation

view details

Wyatt Calandro

commit sha e71ea98001182e0c1216330aca13bc77c58631d8

fix: Remove old cargo-kythe directory (#4601) This directory was associated with the old Rust indexer and should be removed to avoid confusion with the new Rust support.

view details

Wyatt Calandro

commit sha c84b2373f36aa783a8d2ef9db5050dab78655b61

feat: Add library for generating Rust save_analysis files (#4594) This PR adds a new Rust library that exposes an interface to generate Rust save_analysis files.This will be used by the new Bazel Rust extractor.

view details

Wyatt Calandro

commit sha a030ce48ddf46b171736d136af10f8462c5a302a

feat: Create new Rust Bazel extractor (#4602) This PR adds a new Bazel extractor for Rust to replace the previous implementation. The extractor gathers the compiler arguments and source files using the extra action API and uses that information to generate a save_analysis JSON file and create a kzip. The extractor can be tested with the following command: ``` bazelisk build --experimental_action_listener=@io_kythe//kythe/extractors:extract_kzip_rust //kythe/rust/examples/hello_world --action_env=KYTHE_CORPUS=test_corpus ``` The extractor is an MVP and currently does not support the `vnames_config` functionality. Support will be added in a future PR.

view details

Cody Schroeder

commit sha a95d2e0620202fa97169e6091cad03eb191d0183

feat(java_common): add ByteString overloads for fact value conversions (#4610)

view details

push time in 10 days

created tagcreachadair/snapback

tagv0.0.45

A tarsnap backup script written in Go.

created time in 10 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha ec659816c91902fc9ed6e43a565e2b76f7c7f7ea

Update module dependencies.

view details

push time in 10 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha a6e736b788a5db04bc2c1ec179d7ba4dc6fc2a47

Add an auto-prune example to README.

view details

push time in 10 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 5112f15af4f1c0895e9d5df4817954daa14810de

Add settings for auto-pruning. Keep a timestamp file whose modification time records when archives were last pruned. When the age of that timestamp exceeds the specified interval, run a prune cycle automatically after backups are complete.

view details

M. J. Fromberger

commit sha fe90a824fa3bb53d4dc416d9cd379ecc6c04e73f

Automatically prune if indicated by the config.

view details

push time in 10 days

push eventcreachadair/snapback

M. J. Fromberger

commit sha 7408a77c5bf86b52f483483b0e69f1e5d7580be1

Add missing copyright comments.

view details

M. J. Fromberger

commit sha c1d265bcf584f3be8abf7d5ff2e56d1ebb61dfc5

config: Boost the list cache to a top-level type.

view details

push time in 14 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 0e08e9fba61ce199c88feabb8fe9923f02c205bb

Update the playground example link.

view details

push time in 15 days

push eventcreachadair/eyepopper

M. J. Fromberger

commit sha 1de93c8f031e43d2f8662cebf0d8a82a91e81749

Fix obsolete catch tuple syntax.

view details

push time in 16 days

push eventcreachadair/dnd

M. J. Fromberger

commit sha ee7ba695f995ef1fa873ba8bb507b2f5d9af8034

Fix obsolete catch tuple syntax.

view details

push time in 16 days

push eventcreachadair/blitzmail

M. J. Fromberger

commit sha 8f3427ffa5d1e2a20b46207a71e9476984691c1e

Fix obsolete catch tuple syntax.

view details

push time in 16 days

push eventcreachadair/dnd

M. J. Fromberger

commit sha 98557c12f766ed399908c013e0586443332b7e57

Fix old-style not-equal operators (<>).

view details

push time in 16 days

push eventcreachadair/blitzmail

M. J. Fromberger

commit sha 195606348bd494206c96f225f8cdccc3caa46fa8

Fix old-style not-equal operators (<>).

view details

push time in 16 days

push eventcreachadair/weather

M. J. Fromberger

commit sha d0481ba62ac42de7ca1bfd3b89052484590ca93d

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/scrubby

M. J. Fromberger

commit sha fb485c7e929eb4db321d2e8b1dbe4b6fb75ee8aa

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/kmeans

M. J. Fromberger

commit sha 5aa46a5b45d9101a2eaa34bb3b9ac798c7a4d797

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/eyepopper

M. J. Fromberger

commit sha 3a74d807f837d537be97938f27df8838561ec100

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/dnd

M. J. Fromberger

commit sha 9dc16292a1e80762b2ec56d4bcf9ae8ad626502c

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/curled

M. J. Fromberger

commit sha c7dd91dcb4e7cb04c1080c20cde0754a777a7080

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/classifier

M. J. Fromberger

commit sha 22b70c841c494b3936567fcae7cc3ab11088d14f

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/blitzmail

M. J. Fromberger

commit sha ce045c6d7e3ad227985c2e09ce00a0c929fd8ec0

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/py-ssh-sftp

M. J. Fromberger

commit sha 625a95b27d30006247766e72e59573b5706185d5

Format files with yapf (PEP8).

view details

push time in 16 days

push eventcreachadair/scapegoat

M. J. Fromberger

commit sha 3eeee7ec04a9c783d589219b0b70983d6cb77537

Update module dependencies.

view details

M. J. Fromberger

commit sha 7fe7969980f5e8d0ab1a3ead8e8e261480234347

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/repodeps

M. J. Fromberger

commit sha b7a528cc4f23d1f347f85970ffa0d273dce00d6e

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/misctools

M. J. Fromberger

commit sha 1db25c68b0039f2e92834921aacfdbfd5324472c

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/keyfish

M. J. Fromberger

commit sha b67077281be59c2f7649eb05b9fb8eb5e4d5022a

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/keyfile

M. J. Fromberger

commit sha c4941f614939eadb8d763283afbee6b23c2fb59d

Update module dependencies and generated code.

view details

push time in 17 days

push eventcreachadair/getpass

M. J. Fromberger

commit sha c222c7b167acf9fbadf36995209ca42db87483ad

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/boltstore

M. J. Fromberger

commit sha a3d79a1fd343791df2e958b1df45eca9ec415045

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/ansi

M. J. Fromberger

commit sha cd53e745f1c2afa0ce00bad5839e023d3000e671

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/repodeps

M. J. Fromberger

commit sha 48ebf799da26f186f58041fee20ed46ccae58233

Update module dependencies.

view details

push time in 17 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 20896909efbd0d8a2ca4408150a628d7f221784d

Demonstrate use of nil in the handler.Args example.

view details

push time in 17 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha d123504fae41872cae7fc81ede718ec22a56428c

Add an example for (*Response).UnmarshalResult.

view details

push time in 17 days

push eventcreachadair/kythe

Shahms King

commit sha 765b391ebfdd82277e5a1a80ce0be3f5c5d37474

chore: tell git to ignore .cache files (#4586)

view details

Shahms King

commit sha b2447795d7b34e416bcc4d4c01f75696d735936c

chore: enable layering_check for select C++ packages (#4587)

view details

hafiz

commit sha 75e0f920a707fbec22eed27229de5b4b59fb2143

TS indexer: marked source for binding elements (#4562) Right now we set the initializer to be the initializer of the entire variable declaration the bound element is in. We could be more granular here if the initializer is an object or array literal; I will add this in a commit after this one.

view details

hafiz

commit sha 82ed5941ec7250451c9b1cb30fb4aa9e7749cc33

Visit JSDocs for types and interfaces (#4588)

view details

Shahms King

commit sha a10967697bc3962a3ea6192c171ffd3ad9515348

chore: remove unused includes/deps (#4589) * chore: remove unused includes/deps * chore: add a dep for status_or

view details

hafiz

commit sha 88c8dc7e549a0608f4df7bce69b48c240acd2e46

Do not group files in nested test directories by default (#4591) Previously test files for the TS indexer that were in a common subdirectory would be tested together. This is useful in a lot of cases but isn't the behavior we want for marked source tests, which are put in a separate directory because they test a lot of code that is specific to marked source and whose files are independent from each other. To ensure that files for marked source tests are treated independently, this commit groups tests only when the nested test directory ends with `_group`.

view details

hafiz

commit sha 88c464dbed41464fc4f707fb246176104bcd5f8d

Use template literal instead of concating number and string (#4593) Fixes https://github.com/kythe/kythe/pull/4591#discussion_r456686833

view details

Wyatt Calandro

commit sha ade706d5409a9a997f85d14a1251033577f1f5a1

feat: Add support for defining environment variables passed to extractors (#4592) This PR adds an `env` field to the `extractor_action` macro. This makes it possible to define extractor actions that require static environment variables. This functionality will be required for the new Rust extractor.

view details

push time in 17 days

issue closedcreachadair/jrpc2

panic, probably on disconnect of client

This happens after about a day of perfect work. I had 2 clients connected to the server. I used Loop function.

[jrpc2.Server] 2020/06/03 07:46:13 server.go:469: Received 1 new requests
[jrpc2.Server] 2020/06/03 07:46:13 server.go:469: Received 1 new requests
[jrpc2.Server] 2020/06/03 07:46:13 server.go:405: Server signaled to stop with err=EOF
[jrpc2.Server] 2020/06/03 07:46:13 server.go:165: Processing 1 requests
[jrpc2.Server] 2020/06/03 07:46:13 server.go:223: Checking request for "xxx.yyy": [42]
[jrpc2.Server] 2020/06/03 07:46:13 server.go:136: Reading next request: EOF
[jrpc2.Server] 2020/06/03 07:46:13 server.go:204: Completed 1 requests [850.11µs elapsed]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x56f841]

goroutine 50943 [running]:
github.com/creachadair/jrpc2.encode(0x0, 0x0, 0xc000ad2248, 0x1, 0x1, 0x1, 0x0, 0x1)
        /home/user/go/src/github.com/creachadair/jrpc2/base.go:362 +0x91
github.com/creachadair/jrpc2.(*Server).deliver(0xc000181520, 0xc000ad2248, 0x1, 0x1, 0x0, 0x0, 0xcf8be, 0x0, 0x0)
        /home/user/go/src/github.com/creachadair/jrpc2/server.go:213 +0x2ac
github.com/creachadair/jrpc2.(*Server).dispatch.func2(0x0, 0xc000020220)
        /home/user/go/src/github.com/creachadair/jrpc2/server.go:194 +0x123
github.com/creachadair/jrpc2.(*Server).serve.func1(0xc000181520, 0xc000545a40)
        /home/user/go/src/github.com/creachadair/jrpc2/server.go:142 +0x51
created by github.com/creachadair/jrpc2.(*Server).serve
        /home/user/go/src/github.com/creachadair/jrpc2/server.go:140 +0x6d
exit status 2

It looks ch is nil and was set by stop. I read the code and failed to figure out how it it possible that ch is nil and s.inq.Len() > 0. (If s.inq.Len() == 0 then nextRequest would catch it.

closed time in 17 days

piecegift

issue commentcreachadair/jrpc2

panic, probably on disconnect of client

I have not been able to reproduce this crash. I wrote a program that uses server.Loop with a large number of concurrent clients making multiple requests against that server, and tried it against both HEAD and v0.8.2.

Since I was not able to reproduce the problem I am going to close this issue, but if you are still seeing the problem please feel free to re-open it with more details. I would be specifically interested to know what version of the library you're using, and if you can point to some example code that triggers the failure (even if it's not self-contained).

piecegift

comment created time in 17 days

issue closedbblfsh/bblfshd

Investigate integrating analysis results from PMD

The PMD tool does a lightweight rules-based static analysis of source code to detect bugs and other potential issues. I had a conversation with @rsoesemann, one of the maintainers of PMD, about some possibilities for integrating analysis results from the tool with UASTs.

I created this issue to track an investigation of what is possible and/or feasible. PMD can be run as a standalone tool on a per-repository basis, so it may be worthwhile for us to use it as a test case for merging annotations with UASTs, as it may be easier to set up than a full static analysis pipeline like Kythe.

closed time in 17 days

creachadair

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 02091e58b154220f3b053aeb8e5ce13a6eeb55e9

Update module dependencies.

view details

push time in 18 days

push eventcreachadair/repodeps

M. J. Fromberger

commit sha f76bf40496760b1dcc32e1c95e0a7344583ddacf

Update jrpc2 to v0.10.0.

view details

push time in 18 days

push eventcreachadair/notifier

M. J. Fromberger

commit sha 664ad3c68019408ac161dcc11f0e6be184fceb14

Update jrpc2 to v0.10.0.

view details

push time in 18 days

pull request commentcreachadair/jrpc2

Experimental support for server-side callbacks

This is now available at or after v0.10.0.

creachadair

comment created time in 18 days

delete branch creachadair/jrpc2

delete branch : server-call

delete time in 18 days

created tagcreachadair/jrpc2

tagv0.10.0

A Go implementation of a JSON-RPC 2.0 server and client.

created time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 594e6bb9cf0fd6171bbaff6c8409bac773872008

Add support for server-side callbacks (#25) Extend the server-side push mechanism to support calls back to the client as well as notifications. This is a limited extension, without batch or context support. The server now exports a Callback method that makes a single, synchronous call back to the client channel, blocking until a response is received. As with notifications, this feature is gated by the AllowPush server option. This commit includes a breaking API changes, specifically: - The server method Push has been renamed Notify. - The helper function ServerPush has been renamed PushNotify. - The error value ErrNotifyUnsupported has been renamed ErrPushUnsupported. Documentation and tests updated. Co-authored-by: Radek Simko <radek.simko@gmail.com>

view details

push time in 18 days

PR merged creachadair/jrpc2

Experimental support for server-side callbacks

Fixes #18.

Note that this PR includes some breaking API changes, specifically that:

  • jrpc2.ServerPush has been renamed jrpc2.PushNotify
  • (*Server).Push has been renamed (*Server).Notify
  • jrpc2.ErrNotifyUnsupported has been renamed jrpc2.ErrPushUnsupported
+261 -69

4 comments

8 changed files

creachadair

pr closed time in 18 days

issue closedcreachadair/jrpc2

Support server -> client requests

Currently the library supports just server to client notifications via jrpc2.ServerPush().

The Language Server Protocol spec describes a number of RPC calls which are meant to be sent from the server to the client and responded to - i.e. treated as requests, rather than notifications.

For example:

  • client/registerCapability
  • client/unregisterCapability
  • window/showMessageRequest
  • window/workDoneProgress/create
  • workspace/applyEdit
  • workspace/configuration
  • workspace/workspaceFolders

and here are some examples of how it's used:

Would there be any interest in adding support for this functionality to the library?

closed time in 18 days

radeksimko

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha e6503c504f82285bee0eb74faf0c0692532904f6

Update server.go (fix a name in a doc comment).

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 566c17b25532da89b8557fae2b15521f33485ac9

Update ctx.go (fix a typo). Co-authored-by: Radek Simko <radek.simko@gmail.com>

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 0f8201073fde37c54beb0afc19ef818c165007ff

Update client.go (fix a typo). Co-authored-by: Radek Simko <radek.simko@gmail.com>

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 19433fe4cac5711322f2507bbf2c12a0c26b5fa4

Update package documentation for push API changes.

view details

push time in 18 days

pull request commentcreachadair/jrpc2

Experimental support for server-side callbacks

[I]it's just that usually one doesn't interact with the client-side of the API and server-side at the same time, so maybe that is why it wasn't so obvious to me at first sight? Not sure - feel free to ignore that point.

I updated the documentation to make it more explicit, both for the client and for the server-side. Hopefully that will help avoid confusion.

(4) I like PushNotify and PushCall - I think these are the best options of all mentioned so far.

Sounds good, I'll use those.

creachadair

comment created time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 8265a45b4c3580c434b68bb4164f7f0cb48d3eb7

Update push helper names. For notifications: PushNotify. For callbacks: PushCall.

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 306fbb0f5a7d4959c74be7fff7bb455a2ac59a2b

Better-document the semantics of calls.

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 1efa1ce1d144c83910bec609d34381d4038a6aa2

Less-confusing parameter naming.

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha ec1738881aef936fcf3f7f167a92bd55b449cd86

Update option comment.

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha d3dab93334634cae06c75646add10a63b30cdb68

Add unit tests for dead callback.

view details

M. J. Fromberger

commit sha 943f7390dcaa3ce9892cc3f7f42cbceb2b95eba7

Avert panic on structural callback failure.

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 7da9f9a439d02170c4670ba2123ab5e07e67f8b3

Rename Push and ServerPush. For symmetry with callbacks, rename Push to Notify and ServerPush to ServerNotify. This is a breaking API change.

view details

push time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha 308f1035b719885f27bd5e887832e208521d55ce

Factor out common context error filtering.

view details

push time in 18 days

pull request commentcreachadair/jrpc2

Experimental support for server-side callbacks

Regarding point (4) above, another possibility:

  • ServerPushPushNotify
  • ServerCallbackPushCall or PushCallback
creachadair

comment created time in 18 days

pull request commentcreachadair/jrpc2

Experimental support for server-side callbacks

Thank you for the comments! I have a few follow-up comments and questions below:

  1. the ServerCallback technically returns two different kinds of errors (one as 2nd return value and one in the response) - which makes sense, but it may be worth documenting what kind of errors may appear in each case.

The Callback method is meant to have the same semantics as the Call method of the *Client: All errors are reported via the second return, and the caller can distinguish errors from the server (in the response) and errors in structure (failure to send/receive) by checking the concrete type of that value.

There might be a case for that being the wrong semantics, but I thought it should be consistent with the client, since it's basically acting as a restricted client in that context. What do you think?

  1. I was initially slightly surprised that the way unmarshaling is done differs from the way unmarshaling is implemented for handlers (mostly automatic via reflection), but I'm happy with this approach too 👍 Also I can't think of a reasonable API with reflection here.

I intentionally gave the callback handler the same signature the server uses for handlers, so at least in principle one could use the handler package to construct a function for it.

  1. I personally don't find the OnCallback option as useful, since in LSP the response usually needs to be processed within the handler anyway (as opposed to globally)

I considered that, but it isn't clear to me how to route callbacks to the correct handler. By design, JSON-RPC allows the client to interleave requests (hence the "id" field of the request object). Given this sequence of calls, how does the client know which caller should receive the callback?

⬇︎ Time
C ---- Req 1 ----> S
C ---- Req 2 ----> S
…
C <---- CB 1 ---- S (from Req 2)

You could imagine establishing a convention for callback "id" values (e.g., "the callbacks for request <N> have ID strings that begin with <N>."), but then each client has to be taught that convention.

So it's not so much a question of whether it's useful to route callbacks to their triggering handler—it's a matter of feasibility.

  1. Totally nitpicky comment - the name ServerCallback doesn't seem to align well with ServerPush - which may be just because "callback" usually describes a function which is called on an event. Perhaps ServerCallBack (with capital B), or just ServerCall is better choice? I don't have a strong opinion here - just sharing my thoughts.

That's a very good point. I chose Callback instead of Call to emphasize that this is a special case with restrictions, but it makes Push asymmetric. What do you think about renaming ServerPush to ServerNotify?

creachadair

comment created time in 18 days

push eventcreachadair/jrpc2

M. J. Fromberger

commit sha c2532947953b6f176c8056a6b8d93a80421a0983

Minor comment cleanup.

view details

push time in 19 days

more