sapling/eden/scm/lib
Jun Wu 46519a3269 dag: fix benches/inprocess_iddag_serde
Summary:
Benchmark code is out of sync. Fix it.

Example run:

  benchmarking dag::iddag::IdDag<dag::iddagstore::in_process_store::InProcessStore> serde
  serializing inprocess iddag with mincode            0.664 ms
  mincode serialized blob has 707565 bytes
  deserializing inprocess iddag with mincode         42.477 ms

Reviewed By: sfilipco

Differential Revision: D26360563

fbshipit-source-id: f87e7ad53e6b6dadecaa0976e1c61f0399814104
2021-02-10 12:28:29 -08:00
..
async-runtime lib: upgrade most crates to tokio 1.0 2021-01-29 18:18:17 -08:00
auth auth: optionally validate client certs 2021-01-26 17:58:12 -08:00
backingstore HTE lint-ignore message cleanup at fbcode (#8799) 2021-02-09 03:23:33 -08:00
blackbox Prepare for rustfmt 2.0 2020-09-07 20:47:59 -07:00
bookmarkstore types: address clippy warnings 2020-03-16 14:58:21 -07:00
checkout checkout: generalize CheckoutPlan::apply for testing 2021-02-09 17:04:30 -08:00
clib Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
clidispatch dag: expose LazySet::from_stream API 2021-02-02 19:58:31 -08:00
cliparser debug: introduce error classification and metadata propagation 2020-07-15 10:03:10 -07:00
commitcloudsubscriber fix order of arguments in error message 2020-12-16 06:23:00 -08:00
configparser dynamicconfig: remove legacylist and disallowedlist deprecation logic 2021-02-03 09:53:00 -08:00
cpython-async lib: upgrade most crates to tokio 1.0 2021-01-29 18:18:17 -08:00
cpython-ext cpython-ext: add a general From/ToPyObject for serde types 2020-10-06 16:01:23 -07:00
dag dag: fix benches/inprocess_iddag_serde 2021-02-10 12:28:29 -08:00
dev-logger dev-logger: traced(func) -> [log] for testing purpose 2021-02-02 16:39:46 -08:00
drawdag Prepare for rustfmt 2.0 2020-09-07 20:47:59 -07:00
edenapi edenapi_server: add /commit/hash_to_location 2021-02-10 10:19:05 -08:00
edenfs-client fix the Windows build 2020-09-09 10:39:35 -07:00
encoding Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
fsinfo eden: add config and awareness for our edenfs.kext 2020-12-07 11:18:09 -08:00
fsyncglob hgcommands: add debugfsync 2020-08-27 18:26:03 -07:00
hg-http metrics: use dot . as metric separator 2021-01-21 11:29:42 -08:00
hg-metrics metrics: crate for collecting metrics 2020-09-09 17:35:48 -07:00
hgcommands Daily arc lint --take RUSTFMT 2021-02-09 04:05:27 -08:00
hgcommits lib: bytes::Bytes -> minibytes::Bytes 2021-02-03 20:22:32 -08:00
hgtime hgtime: address clippy warnings 2020-03-16 14:58:22 -07:00
http-client lib: upgrade most crates to tokio 1.0 2021-01-29 18:18:17 -08:00
indexedlog indexedlog: add an API to manually clean up rotated logs 2021-01-12 21:38:03 -08:00
linelog Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
lz4-pyframe Update formatter to rustfmt 2.0 2020-09-09 07:52:34 -07:00
manifest manifest: add testutil in core package 2020-01-14 11:49:52 -08:00
manifest-tree pathmatcher: allow errors in match function definition 2021-01-07 16:22:17 -08:00
metalog metalog: explicitly use tuple serialization for HgId 2020-09-28 21:32:21 -07:00
mincode Add version specificiation to internal dependencies 2021-01-25 22:10:24 -08:00
minibench mononoke/mercurial: make revlog crate OSS buildable 2020-04-08 09:49:11 -07:00
minibytes minibytes: add Bytes::into_vec 2021-02-05 13:57:49 -08:00
mpatch Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
mpatch-sys use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
mutationstore dag: ensure MetaSet has Hints set 2021-02-05 11:53:46 -08:00
nodemap Update formatter to rustfmt 2.0 2020-09-09 07:52:34 -07:00
nonblocking nonblocking: add a way to convert async fn to non-blocking sync fn 2020-12-10 12:37:31 -08:00
pathmatcher pathmatcher: allow errors in match function definition 2021-01-07 16:22:17 -08:00
procinfo procinfo: fix buck build on OSX 2020-11-03 17:40:19 -08:00
progress progress: fix typo in comment 2020-10-05 22:26:16 -07:00
radixbuf radixbuf: use concrete error types 2020-08-06 12:31:57 -07:00
renderdag renderdag: move to dag 2020-08-21 13:00:45 -07:00
revisionstore newstore: introduce a trait-object-based "fallback combinator" 2021-02-08 10:39:32 -08:00
revlogindex dag: ensure MetaSet has Hints set 2021-02-05 11:53:46 -08:00
spawn-ext Update formatter to rustfmt 2.0 2020-09-09 07:52:34 -07:00
streams util: introduce a select_drop stream combinator 2021-02-08 10:39:32 -08:00
taggederror taggederror: introduce category and transience metadata and precedence 2020-10-12 17:17:34 -07:00
taggederror-util taggederror: Introduce taggederror-util for more ergonomic error tagging for eden error types. 2020-08-06 19:37:25 -07:00
third-party mman-win32: remove 2020-10-02 10:47:24 -07:00
thrift-types derived_data: support gaps in derivation 2021-01-29 06:36:20 -08:00
tracing-analyzer tracing-analyzer: log version information 2021-01-22 12:31:16 -08:00
tracing-collector tracing-collector: limit the count a callsite can log 2021-01-28 12:32:56 -08:00
tracing-runtime-callsite tracing-runtime-callsite: intern strings 2021-01-28 13:17:59 -08:00
treestate Prepare for rustfmt 2.0 2020-09-07 20:47:59 -07:00
types Regenerate all autocargo-managed Cargo.tomls 2020-12-09 12:44:29 -08:00
util util: introduce a select_drop stream combinator 2021-02-08 10:39:32 -08:00
version configparser: fix non-fb dependencies (#45) 2020-08-26 16:31:00 -07:00
vfs vfs: move conflict handling from pyworker to vfs write 2021-02-09 17:04:30 -08:00
vlqencoding mutationstore: move MutationEntry type to types crate 2020-04-23 08:58:10 -07:00
workingcopy pathmatcher: allow errors in match function definition 2021-01-07 16:22:17 -08:00
xdiff Update project Cargo.toml's 2021-01-06 15:46:50 -08:00
xdiff-sys Update libra to latest revision 2020-07-16 21:10:44 -07:00
zstdelta third-party/rust: import async-compression + update zstd 2020-09-15 07:59:53 -07:00
zstore lib: bytes::Bytes -> minibytes::Bytes 2021-02-03 20:22:32 -08:00
CMakeLists.txt clib: remove buffer.[ch] 2020-10-02 10:47:23 -07:00
README.md Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
run_cargo_tests.py config: use Rust graph render as default 2020-10-19 17:07:30 -07:00

lib

Any native code (C/C++/Rust) that Mercurial (either core or extensions) depends on should go here. Python code, or native code that depends on Python code (e.g. #include <Python.h> or use cpython) is disallowed.

As we start to convert more of Mercurial into Rust, and write new paths entrirely in native code, we'll want to limit our dependency on Python, which is why this barrier exists.

See also hgext/extlib/README.md, mercurial/cext/README.mb.

How do I choose between lib and extlib (and cext)?

If your code is native and doesn't depend on Python (awesome!), it goes here.

Otherwise, put it in hgext/extlib (if it's only used by extensions) or mercurial/cext (if it's used by extensions or core).